f16dbe1fef6a6fd83d63fbc7e060b21262b43bf5
markd
  Mon Feb 8 15:26:55 2021 -0800
don't include dynamic gfServer in blat of all genomes

diff --git src/hg/hgBlat/hgBlat.c src/hg/hgBlat/hgBlat.c
index d97ce79..e1e49b0 100644
--- src/hg/hgBlat/hgBlat.c
+++ src/hg/hgBlat/hgBlat.c
@@ -862,30 +862,38 @@
 else
     {
     safef(shortName, sizeof shortName, "blat %s+%d", names->name, count - 1);
     safef(description, sizeof description, "blat on %d queries (%s, %s, ...)", count, names->name, names->next->name);
     }
 
 *pName = makeNameUnique(shortName, database, cart);
 *pDescription = cloneString(description);
 }
 
 void queryServer(char *host, char *port, char *db, struct dnaSeq *seq, char *type, char *xType,
     boolean complex, boolean isProt, boolean queryRC, int seqNumber, char *genomeDataDir)
 /* Send simple query to server and report results. (no, it doesn't do this)
  * queryRC is true when the query has been reverse-complemented */
 {
+/*
+ * xinetd throttles by refusing more connections, which causes queries to fail
+ * when the configured limit is reached.  Rather than trying to throttle in the
+ * client, dynamic servers are excluded. See issue #26658.
+ */
+if (genomeDataDir != NULL)
+    return;
+
 struct genomeHits *gH;
 AllocVar(gH);
 
 gH->host=cloneString(host);
 gH->port=cloneString(port);
 gH->db = cloneString(db);
 gH->genome = cloneString(hGenome(db));
 gH->seqNumber = seqNumber;
 gH->faName = cloneString(seq->name);
 gH->dna = cloneString(seq->dna);
 gH->dnaSize = seq->size;
 gH->type = cloneString(type);
 gH->xType = cloneString(xType);
 gH->queryRC = queryRC;
 gH->complex = complex;