5de42e2798508dec62b4b89ff15d4966e1ae32da braney Tue Feb 24 10:03:24 2026 -0800 the printing of each hub that is in search results is now protected by errCatching so errors will not derail the whole process refs #37100 diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c index 6a80d7399fe..087bc6f39c9 100644 --- src/hg/hgHubConnect/hgHubConnect.c +++ src/hg/hgHubConnect/hgHubConnect.c @@ -1232,32 +1232,37 @@ * Skip this hub. */ continue; } slAddHead(&hubList, hubInfo); } slSort(&hubList, hubEntryCmp); slTime = clock1000(); for (hubInfo = hubList; hubInfo != NULL; hubInfo = hubInfo->next) { struct hubSearchText *searchResult = NULL; if (searchResultHash != NULL) { searchResult = (struct hubSearchText *) hashMustFindVal(searchResultHash, hubInfo->hubUrl); } + struct errCatch *errCatch = errCatchNew(); + if (errCatchStart(errCatch)) printOutputForHub(hubInfo, searchResult, count); + errCatchEnd(errCatch); + if (!errCatch->gotError) count++; + errCatchFree(&errCatch); } printOutputForHubTime = clock1000(); if (measureTiming) printf("hgHubConnect: printOutputForHubTime before js execution: %lu millis<BR>\n", printOutputForHubTime - slTime); printHubListFooter(); } if (hubsToPrint != NULL) { /* Write out the list of hubs in a single table inside a div that will be hidden by * javascript. This table is used (before being hidden) to set common column widths for * the individual hub tables when they're split by detailed search results. */ printf("<div id='hideThisDiv'>\n"); printf("<table class='hubList' id='hideThisTable'><tbody>\n"); for (hubInfo = hubList; hubInfo != NULL; hubInfo = hubInfo->next)