65bfad661897f4f834dd07b89c507bae0a19bdde braney Tue Sep 1 00:41:08 2026 -0700 trackDb: clear MAKEFLAGS for the metaDb sub-make, refs #35489 checkMetaDb runs a plain make in the per-database metaDb directory. The recipe that calls it is not a recursive make, so under -j the parent has already closed the jobserver pipe and the sub-make prints make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. makeStrictBeta.csh greps the log for "error|warn" and exits 1 on any hit, so those warnings would stop the build even though the trackDb work succeeded. The beta path has three of these sub-makes (hg18, hg19, mm9), so three hits. Clearing MAKEFLAGS for that one command silences it. The sub-make only needs DB and TABLE, and both are passed on the command line. Tested with the real script in the same three-level shape the build uses: before, serial gives zero hits on that grep and -O -j 8 gives three; after, both give zero, and the metaDb recipe still runs in all four cases. diff --git src/hg/makeDb/trackDb/checkMetaDb src/hg/makeDb/trackDb/checkMetaDb index 75950f36e54..53f7a242425 100755 --- src/hg/makeDb/trackDb/checkMetaDb +++ src/hg/makeDb/trackDb/checkMetaDb @@ -30,26 +30,28 @@ local db="$1" local dbpath=$(ls -1 -d */$db) local org=$(echo $dbpath | sed -e 's/\/.*//') local metaDir=$dbpath/metaDb/$directory if test \! -d $metaDir then return; fi touch $metaDir/metaDb echo hgsqlTableDate $db $metaDb $metaDir/metaDb /cluster/bin/x86_64/hgsqlTableDate $db $metaDb $metaDir/metaDb || rm $metaDir/metaDb # makefile will call makeMetaDb if file list is newer than table - (cd $metaDir && make DB=$db TABLE=$metaDb) + # clear MAKEFLAGS: this is not a recursive make, so a parallel parent make + # has already closed the jobserver pipe and the sub-make would warn about it + (cd $metaDir && MAKEFLAGS= make DB=$db TABLE=$metaDb) rm -f $metaDir/metaDb } # load for all specified databases for db in $dbs ; do if dbExists $db ; then checkMetaDb $db fi done