3d5a9151f45ad34ed48141c46ff63a0f4b0c6587
markd
  Tue May 4 19:13:49 2021 -0700
#27506 fix bug introduced with dynamic blat where unhelpful error message generated if a hub does not have blat

diff --git src/hg/hgBlat/hgBlat.c src/hg/hgBlat/hgBlat.c
index f053cdc..c2d21ed 100644
--- src/hg/hgBlat/hgBlat.c
+++ src/hg/hgBlat/hgBlat.c
@@ -371,31 +371,31 @@
     ++nonHubDynamicBlatServerCount;
     }
 
 sqlFreeResult(&sr);
 hDisconnectCentral(&conn);
 return st;
 }
 
 static struct serverTable *trackHubServerTable(char *db, boolean isTrans)
 /* Load blat table for a hub */
 {
 char *host, *port;
 char *genomeDataDir;
 
 if (!trackHubGetBlatParams(db, isTrans, &host, &port, &genomeDataDir))
-    errAbort("Cannot get blat server parameters for track hub with database %s", db);
+    return NULL;
 
 struct serverTable *st;
 AllocVar(st);
 
 st->db = cloneString(db);
 st->genome = cloneString(hGenome(db));
 st->isTrans = isTrans;
 st->host = host; 
 st->port = port;
 struct trackHubGenome *genome = trackHubGetGenome(db);
 st->nibDir = cloneString(genome->twoBitPath);
 char *ptr = strrchr(st->nibDir, '/');
 // we only want the directory name
 if (ptr != NULL)
     *ptr = 0;
@@ -2093,30 +2093,32 @@
 char *db, *organism;
 
 boolean clearUserSeq = cgiBoolean("Clear");
 allGenomes = cgiVarExists("allGenomes");
 
 cart = theCart;
 dnaUtilOpen();
 
 orgChange = sameOk(cgiOptionalString("changeInfo"),"orgChange");
 if (orgChange)
     {
     cgiVarSet("db", hDefaultDbForGenome(cgiOptionalString("org"))); 
     }
 getDbAndGenome(cart, &db, &organism, oldVars);
 char *oldDb = cloneString(db);
+
+// n.b. this changes to default db if db doesn't have BLAT
 findClosestServer(&db, &organism);
 
 allResults = cartUsualBoolean(cart, "allResults", allResults);
 
 /* Get sequence - from userSeq variable, or if 
  * that is empty from a file. */
 if (clearUserSeq)
     {
     cartSetString(cart, "userSeq", "");
     cartSetString(cart, "seqFile", "");
     }
 userSeq = cartUsualString(cart, "userSeq", "");
 if (isEmpty(userSeq))
     {
     userSeq = cartOptionalString(cart, "seqFile");