8aa101e7204bb6da91e3264469489e0eba6f6552
galt
  Sat Jul 5 00:33:14 2025 -0700
Fixes erroneous code in vcfTrack.c when parallelFetch.threads=0. Tested on vcfTabix and vcfPhasedTrio in database or bigDataUrl setting or hub or ct for both .threads=0 and threads=N. fixes #36030

diff --git src/hg/hgTracks/vcfTrack.c src/hg/hgTracks/vcfTrack.c
index abd045d9ba7..997bf6ea3ef 100644
--- src/hg/hgTracks/vcfTrack.c
+++ src/hg/hgTracks/vcfTrack.c
@@ -2262,40 +2262,35 @@
 }
 
 static void indelTweakMapItem(struct track *tg, struct hvGfx *hvg, void *item,
         char *itemName, char *mapItemName, int start, int end, int x, int y, int width, int height)
 /* Pass the original vcf chromStart to pgSnpMapItem, so if we have trimmed an identical
  * first base from item's alleles and start, we will still pass the correct start to hgc. */
 {
 struct pgSnpVcfStartEnd *psvs = item;
 pgSnpMapItem(tg, hvg, item, itemName, mapItemName, psvs->vcfStart, psvs->vcfEnd,
 	     x, y, width, height);
 }
 
 static void vcfPhasedLoadItems(struct track *tg)
 /* Load up one individuals phased genotypes in window */
 {
-char *fileOrUrl = NULL;
+char *fileOrUrl = trackDbSetting(tg->tdb, "bigDataUrl");
 char *tbiFileOrUrl = trackDbSetting(tg->tdb, "bigDataIndex"); // unrelated to mysql
 
 /* Figure out url or file name. */
-if (tg->parallelLoading)
-    {
-    /* do not use mysql during parallel-fetch load */
-    fileOrUrl = trackDbSetting(tg->tdb, "bigDataUrl");
-    }
-else
+if (!fileOrUrl)
     {
     struct sqlConnection *conn = hAllocConnTrack(database, tg->tdb);
     fileOrUrl = bbiNameFromSettingOrTableChrom(tg->tdb, conn, tg->table, chromName);
     hFreeConn(&conn);
     }
 
 if (isEmpty(fileOrUrl))
     return;
 int vcfMaxErr = -1;
 struct vcfFile *vcff = NULL;
 
 /* protect against temporary network error */
 struct errCatch *errCatch = errCatchNew();
 if (errCatchStart(errCatch))
     {
@@ -3023,40 +3018,34 @@
 static unsigned maxItems = 0;
 
 if (!set)
     {
     char *maxItemsStr = cfgOptionDefault("vcfMaxItems", "10000");
 
     maxItems = sqlUnsigned(maxItemsStr);
     }
 
 return maxItems;
 }
 
 static void vcfTabixLoadItems(struct track *tg)
 /* Load items in window from VCF file using its tabix index file. */
 {
-char *fileOrUrl = NULL;
+char *fileOrUrl = trackDbSetting(tg->tdb, "bigDataUrl");
 char *tbiFileOrUrl = trackDbSetting(tg->tdb, "bigDataIndex"); // unrelated to mysql
 
-/* Figure out url or file name. */
-if (tg->parallelLoading)
-    {
-    /* do not use mysql during parallel-fetch load */
-    fileOrUrl = trackDbSetting(tg->tdb, "bigDataUrl");
-    }
-else
+if (!fileOrUrl)
     {
     struct sqlConnection *conn = hAllocConnTrack(database, tg->tdb);
     fileOrUrl = bbiNameFromSettingOrTableChrom(tg->tdb, conn, tg->table, chromName);
     hFreeConn(&conn);
     }
 
 if (isEmpty(fileOrUrl))
     return;
 fileOrUrl = hReplaceGbdb(fileOrUrl);
 int vcfMaxErr = -1;
 struct vcfFile *vcff = NULL;
 boolean hapClustEnabled = cartOrTdbBoolean(cart, tg->tdb, VCF_HAP_ENABLED_VAR, TRUE);
 if (slCount(windows)>1)
     hapClustEnabled = FALSE;  // haplotype sorting display not currently available with multiple windows.
 /* protect against temporary network error */