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); }