8149f2d63d04238813b626ab194b45eeaa91e32f
hiram
  Tue Sep 29 15:20:22 2026 -0700
fixup swap directory recognition refs #34360

diff --git src/hg/utils/automation/asmHubMiniMap2ChainNetComposite.pl src/hg/utils/automation/asmHubMiniMap2ChainNetComposite.pl
index 92fbce829e5..9ab906bc525 100755
--- src/hg/utils/automation/asmHubMiniMap2ChainNetComposite.pl
+++ src/hg/utils/automation/asmHubMiniMap2ChainNetComposite.pl
@@ -46,30 +46,35 @@
 sub queryDbFromQDb($) {
   my ($qDb) = @_;
   return $qDb if ($qDb =~ m/^GC/);
   return lcfirst($qDb);
 }
 
 my %queryDates;	# key is asmId, value is assembly date
 my %queryCommonName;	# key is asmId, value is assembly common name
 my %querySubmitter;	# key is asmId, value is assembly submitter
 my %fbStats;	# key is asmId, value is featureBits measure for chains
 my %loStats;	# key is asmId, value is featureBits measure for lift over
 
 open (TD, "ls -d ${targetBuildDir}/trackData/miniMap2.*|") or die "can not ls -d ${targetBuildDir}/trackData/miniMap2.*";
 while (my $mm2Dir = <TD>) {
   chomp $mm2Dir;
+  # a -swap run's default swapDir is itself named 'miniMap2.<otherDb>.swap',
+  # which also matches this glob alongside its own dateless symlink
+  # 'miniMap2.<otherDb>' -- skip that real *.swap work directory so this
+  # query genome is only processed once, via its dateless symlink.
+  next if ($mm2Dir =~ m/\.swap$/);
   my $Qdb = basename($mm2Dir);
   # the hubDateName will translate the accessionId into an asmId
   # side effect it also returns the date
   my $accession = &queryDbFromQDb($Qdb);
   my ($qDate, $qAsmName) = &HgAutomate::hubDateName($accession);
   my $qAsmId = "${accession}";
   if ($accession =~ m/^GC/) {
      $qAsmId = "${accession}${qAsmName}";
   }
   $queryDates{$qAsmId} = $qDate;
   my ($qCommonName, undef, $qSubmitter) = &HgAutomate::getAssemblyInfo($dbHost, $qAsmId);
   $queryCommonName{$qAsmId} = $qCommonName;
   $querySubmitter{$qAsmId} = $qSubmitter;
   my $fbTxt = `ls ${targetBuildDir}/trackData/miniMap2.${Qdb}/fb.*chain${Qdb}Link.txt 2> /dev/null`;
   chomp $fbTxt;