eb4488a478eeaad3f6cd066cc6bdeee7064142b4
braney
  Sat Jun 22 11:22:39 2019 -0700
write out the name of the trackDb being cached.   Stop trashing the
longLabel.

diff --git src/hg/lib/trackDbCustom.c src/hg/lib/trackDbCustom.c
index 4676de4..b4df815 100644
--- src/hg/lib/trackDbCustom.c
+++ src/hg/lib/trackDbCustom.c
@@ -1655,31 +1655,31 @@
 *newTdb = *tdb;
 
 if (tdb->subtracks)
     newTdb->subtracks = lmCloneTdbList(lm, tdb->subtracks, newTdb, NULL);
 
 if ((tdb->parent != NULL) && (superHash != NULL))
     {
     newTdb->parent = lmCloneSuper(lm, newTdb, superHash);
     }
 else
     newTdb->parent = parent;
 
 newTdb->track = lmCloneString(lm, tdb->track);
 newTdb->table = lmCloneString(lm, tdb->table);
 newTdb->shortLabel = lmCloneString(lm, tdb->shortLabel);
-newTdb->longLabel = lmCloneString(lm, "trere");// tdb->longLabel);
+newTdb->longLabel = lmCloneString(lm, tdb->longLabel);
 newTdb->type = lmCloneString(lm, tdb->type);
 if ( newTdb->restrictCount )
     {
     lmAllocArray(lm, newTdb->restrictList, newTdb->restrictCount);
     int ii;
     for(ii=0; ii < newTdb->restrictCount; ii++)
         newTdb->restrictList[ii] = lmCloneString(lm, tdb->restrictList[ii]);
     }
 newTdb->url = lmCloneString(lm, tdb->url);
 newTdb->html = lmCloneString(lm, tdb->html);
 newTdb->grp = lmCloneString(lm, tdb->grp);
 newTdb->parentName = lmCloneString(lm, tdb->parentName);
 
 newTdb->viewHash =  NULL;
 newTdb->children = NULL;
@@ -1789,31 +1789,31 @@
 return checkCache(db, time, trackDbCacheDir);
 }
 
 struct trackDb *trackDbHubCache(char *trackDbUrl, time_t time, char *trackDbCacheDir)
 {
 cacheLog("checking for cache for hub %s at time  %ld", trackDbUrl, time);
 unsigned char hash[SHA_DIGEST_LENGTH];
 SHA1((const unsigned char *)trackDbUrl, strlen(trackDbUrl), hash);
 
 char newName[(SHA_DIGEST_LENGTH + 1) * 2];
 hexBinaryString(hash,  SHA_DIGEST_LENGTH, newName, (SHA_DIGEST_LENGTH + 1) * 2);
 
 return checkCache(newName, time, trackDbCacheDir);
 }
 
-static void cloneTdbListToSharedMem(char *string, struct trackDb *list, unsigned long size, char *trackDbCacheDir)
+static void cloneTdbListToSharedMem(char *string, struct trackDb *list, unsigned long size, char *trackDbCacheDir, char *name)
 /* Allocate shared memory and clone trackDb list into it. */
 {
 static int inited = 0;
 
 if (inited == 0)
     {
     srandom(time(NULL));
     inited = 1;
     }
     
 int oflags=O_RDWR | O_CREAT;
 
 char dirName[4096];
 safef(dirName, sizeof dirName, "/dev/shm/%s/%s", trackDbCacheDir, string);
 
@@ -1882,39 +1882,45 @@
 cacheLog("cloning tdbList %p used %ld bytes called with %ld", list, memUsed, size);
 
 msync((void *)paddress, memUsed, MS_SYNC);
 ftruncate(fd, memUsed);
 
 // for the moment we're not unmapping these so multiple attached hubs will get
 // different addresses
 //munmap((void *)paddress, size);
 //close(fd);
 
 char fileName[4096];
 safef(fileName, sizeof fileName, "/dev/shm/%s/%s/%ld", trackDbCacheDir, string, paddress);
 
 cacheLog("renaming %s to %s", tempFileName, fileName);
 mustRename(tempFileName, fileName);
+
+// write out the name of the trackDb being cached.
+safef(fileName, sizeof fileName, "/dev/shm/%s/%s/name.txt", trackDbCacheDir, string);
+FILE *stream = mustOpen(fileName, "w");
+fprintf(stream, "%s\n", name);
+carefulClose(&stream);
 }
 
 void trackDbCloneTdbListToSharedMem(char *db, struct trackDb *list, unsigned long size, char *trackDbCacheDir)
 /* For this native db, allocate shared memory and clone trackDb list into it. */
 {
 cacheLog("cloning memory for db %s %ld", db, size);
-cloneTdbListToSharedMem(db, list, size, trackDbCacheDir);
+cloneTdbListToSharedMem(db, list, size, trackDbCacheDir, db);
 }
 
 void trackDbHubCloneTdbListToSharedMem(char *trackDbUrl, struct trackDb *list, unsigned long size, char *trackDbCacheDir)
 /* For this hub, Allocate shared memory and clone trackDb list into it. */
 {
 if ((*trackDbUrl == '.') || (list == NULL)) // don't cache empty lists or collections
     return;
 cacheLog("cloning memory for hub %s %ld", trackDbUrl, size);
 unsigned char hash[SHA_DIGEST_LENGTH];
 SHA1((const unsigned char *)trackDbUrl, strlen(trackDbUrl), hash);
 
 char newName[(SHA_DIGEST_LENGTH + 1) * 2];
 hexBinaryString(hash,  SHA_DIGEST_LENGTH, newName, (SHA_DIGEST_LENGTH + 1) * 2);
 
-cloneTdbListToSharedMem(newName, list, size, trackDbCacheDir);
+cloneTdbListToSharedMem(newName, list, size, trackDbCacheDir, trackDbUrl);
 }