ca932f3523dd1d830482cffebb2036a94163e790 braney Fri Feb 14 15:47:25 2020 -0800 when checking cache, don't assume trackDb file exists diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index fb1bf8e..3fccad0 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -732,37 +732,40 @@ /* Load trackDb.ra file and make it into proper trackDb tree */ struct trackDb *tdbList = NULL; struct trackHub *trackHub = hub->trackHub; if (trackHub != NULL) { struct trackHubGenome *hubGenome = trackHubFindGenome(trackHub, database); if (hubGenome != NULL) { boolean doCache = trackDbCacheOn(); if (doCache) { // we have to open the trackDb file to get the udc cache to check for an update struct udcFile *checkCache = udcFileMayOpen(hubGenome->trackDbFile, NULL); + if (checkCache != NULL) + { time_t time = udcUpdateTime(checkCache); udcFileClose(&checkCache); struct trackDb *cacheTdb = trackDbHubCache(hubGenome->trackDbFile, time); if (cacheTdb != NULL) return cacheTdb; + } memCheckPoint(); // we want to know how much memory is used to build the tdbList } tdbList = trackHubTracksForGenome(trackHub, hubGenome); tdbList = trackDbLinkUpGenerations(tdbList); tdbList = trackDbPolishAfterLinkup(tdbList, database); trackDbPrioritizeContainerItems(tdbList); trackHubPolishTrackNames(trackHub, tdbList); if (doCache) trackDbHubCloneTdbListToSharedMem(hubGenome->trackDbFile, tdbList, memCheckPoint()); } } return tdbList;