69a23e3d6507ff4d95c8bd99f97615e1159a0c17
braney
  Fri Apr 17 09:56:19 2026 -0700
hgc: don't try to MySQL-connect to a GenArk source assembly in quickLift paths

When a track has a quickLiftDb pointing to a GenArk accession (e.g.
GCA_018466835.2), hgc crashed clicking on an item because
genericClickHandlerPlus called hAllocConnTrack() on a db name that only
exists as a hub assembly, not a MySQL database. The existing guard only
skipped trackHubDatabase() entries (hubs registered in hubAssemblyHash),
which doesn't include on-demand GenArk assemblies referenced by a
quickLift chain. Extend the guard with isGenArk(), and apply the same
fix in getTrackHtml() to avoid an "cannot find trackDb tables" warning
on the subsequent description-HTML lookup. refs #37388

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index c3554c93cc6..f5973164cf5 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -31,30 +31,31 @@
 #include "fileUi.h"
 #include "bigBed.h"
 #include "bigRmskUi.h"
 #include "bigWig.h"
 #include "regexHelper.h"
 #include "snakeUi.h"
 #include "vcfUi.h"
 #include "vcf.h"
 #include "errCatch.h"
 #include "samAlignment.h"
 #include "makeItemsItem.h"
 #include "bedDetail.h"
 #include "pgSnp.h"
 #include "memgfx.h"
 #include "trackHub.h"
+#include "genark.h"
 #include "gtexUi.h"
 #include "genbank.h"
 #include "htmlPage.h"
 #include "longRange.h"
 #include "barChartUi.h"
 #include "interactUi.h"
 #include "interact.h"
 #include "hicUi.h"
 #include "bigDbSnp.h"
 #include "customComposite.h"
 #include "trackVersion.h"
 #include "hubConnect.h"
 #include "bigBedFilter.h"
 #include "bedMethyl.h"
 
@@ -10204,31 +10205,31 @@
     }
 if (tableName)
     {
     char *date = firstWordInLine(sqlTableUpdate(conn, tableName));
     if (date != NULL)
 	printf("<B>Data last updated at UCSC:&nbsp;</B>%s<BR>\n", date);
     }
 hFreeConn(&conn);
 }
 
 char *getTrackHtml(char *db, char *trackName)
 /* Grab HTML from trackDb in native database for quickLift tracks. */
 {
 char *html = NULL;
 
-if (trackHubDatabase(db))
+if (trackHubDatabase(db) || isGenArk(db))
     {
     // somehow get to the HTML that's not in the quickLift hub, but in the original hub
     }
 else
     {
     char query[4096];
 
     sqlSafef(query, sizeof query,  "tableName = '%s'", trackHubSkipHubName(trackName));
     struct trackDb *loadTrackDb(char *db, char *where);
     struct trackDb *tdb = loadTrackDb(db, query);
 
     html = tdb->html;
     //char *html = tdb->html;
     if (isEmpty(tdb->html))
         {