7753691572e05914d2d184bd295c9076cc9da463
lrnassar
  Tue Jul 21 18:49:22 2026 -0700
Skip active dbDb entries with no local database in runCheckHgFindSpec. refs #37836

The new GenArk hub assemblies added for #37836 are pure hub pointers
(nibPath "hub:...") with no companion local MySQL database, unlike earlier
additions such as rn8/hs1/mpxvRivers. The loop ran "hgsql $db" on every
active dbDb name, which failed with "Unknown database" for these entries
and tripped the QA cron with stderr noise. Guard the loop on the set of
databases that actually exist so hub-only entries are skipped cleanly;
the set of databases actually checked is unchanged.

diff --git src/utils/qa/runCheckHgFindSpec src/utils/qa/runCheckHgFindSpec
index 5922d994e59..4e7b8d2c63a 100755
--- src/utils/qa/runCheckHgFindSpec
+++ src/utils/qa/runCheckHgFindSpec
@@ -1,29 +1,36 @@
 #!/bin/bash
 # Check hgFindSpec table in all active databases, ignoring
 # databases where active=1 but there is no hgFindSpec table.
 
 # get argument / give usage statement
 if [ $# -ne 1 ]
 then
   echo -e "\n  usage:  $(basename $0) go\n
   Runs 'checkHgFindSpec -checkTermRegex' for all dbs in
   dbDb where active=1 that have an hgFindSpec table.\n" >&2
   exit 1
 fi
   
 if [ "$1" != "go" ]
 then
   echo -e "\n only the argument 'go' is allowed.\n"
   exit 1
 fi
 
+# Databases that actually exist on this server.  Some active dbDb rows are
+# GenArk hub assemblies (nibPath "hub:...") with no local MySQL database;
+# skip those so 'hgsql $db' below doesn't fail with "Unknown database" and
+# trip the cron with stderr noise.
+existingDbs=$(hgsql -Ne 'show databases')
+
 # run checkHgFindSpec.  The 'tail' gets rid of whitespace and cookie/domain info
 for db in $(hgsql -Ne 'select name from dbDb where active=1' hgcentraltest | sort)
 do
+  echo "$existingDbs" | grep -qxF "$db" || continue
   findSpec=$(hgsql -Ne 'show tables like "hgFindSpec"' $db)
   if [ -n "$findSpec" ]
   then
     nice checkHgFindSpec -checkTermRegex $db | tail -n +7
   fi
 done
 exit 0