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 */