030283b12881d07a2cf7c84b2af320dd9c39b30a braney Sat Feb 28 13:21:59 2026 -0800 fix problem that cause crash if the trackDb cache was turned on and one of the tables in the hg.conf trackDb setting doesn't exist. No RM. Reported by Hillier. diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c index 0ebe588d47d..4d861601709 100644 --- src/hg/lib/hdb.c +++ src/hg/lib/hdb.c @@ -4294,31 +4294,32 @@ } struct trackDb *tdbList = NULL; boolean doCache = trackDbCacheOn(); char *tdbPathString = hTrackDbPath(); if (doCache) { struct slName *tableList = hTrackDbList(); struct sqlConnection *conn = hAllocConn(db); time_t newestTime = 0; for(; tableList; tableList = tableList->next) { - time_t tableTime = sqlTableUpdateTime(conn, tableList->name); + time_t tableTime = sqlTableMaybeUpdateTime(conn, tableList->name); + if (tableTime != 0) newestTime = tableTime > newestTime ? tableTime : newestTime; } hFreeConn(&conn); long now = clock1(); // if the trackDb table has changed in the last five minutes, avoid caching because the table may // not be done changing. Updates are not atomic. if (now - newestTime < 5 * 60) doCache = 0; else { struct trackDb *cacheTdb = trackDbCache(db, tdbPathString, newestTime);