b05d7e84857952421c7562e19eb37e7b679be199
braney
  Fri Jun 4 13:05:18 2021 -0700
change dots to underbars in the track hash, fixes #27465

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index b975b67..76d4538 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -4299,31 +4299,36 @@
  * subtrack then inheritance will be handled.  (Unless a subtrack has
  * "noInherit on"...) This will die if the current database does not have
  * a trackDb, but will return NULL if track is not found.
  * MAY pass in prepopulated trackDb list, or may receive the trackDb list as an inout. */
 {
 /* Get track list .*/
 struct trackDb *theTdbs = NULL;
 if (tdbList == NULL || *tdbList == NULL)
     {
     // NOTE: Currently any call to this (hub or not), makes a tdbList and leaks it!
     if (isHubTrack(track))
         {
 	struct hash *hash = hashNew(0);
         // NOTE: cart is not even used!
 	theTdbs = hubConnectAddHubForTrackAndFindTdb(db, track, tdbList, hash);
-        return hashFindVal(hash, track); // leaks tdbList and hash
+
+        // need to "fix" this track name
+        char *fixTrackName = cloneString(track);
+        trackHubFixName(fixTrackName);
+
+        return hashFindVal(hash, fixTrackName); // leaks tdbList and hash
 	}
     else
 	{
 	theTdbs = hTrackDb(db);
 	if (tdbList != NULL)
 	    *tdbList = theTdbs;
 	}
     }
 else
     theTdbs = *tdbList;
 return rFindTrack(0, theTdbs, track);
 }
 
 struct trackDb *hTrackDbForTrackAndAncestors(char *db, char *track)
 /* Load trackDb object for a track. If need be grab its ancestors too.