e6254f8ad3cfeba60c7d09513ed6d560af47a5e0 angie Tue May 14 11:29:09 2019 -0700 When saving a session, if hgPcrResult trash files are lost and removed from the cart var value, remove the cart var to prevent hgTracks from errAborting about bad cart var format. refs #22440 diff --git src/hg/hgSession/sessionData.c src/hg/hgSession/sessionData.c index 8e8acc0..126e411 100644 --- src/hg/hgSession/sessionData.c +++ src/hg/hgSession/sessionData.c @@ -465,22 +465,25 @@ // replace with new file containing references to saved files and tables. char *oldTrackFile = cloneString(var->val); char *newTrackFile = saveTrackFile(cart, var->name, var->val, sessionDataDbPrefix, dbSuffix, sessionDir); if (newTrackFile && cartVarIsCustomComposite(var->name)) cartReplaceHubVars(cart, var->name, oldTrackFile, newTrackFile); freeMem(oldTrackFile); freeMem(newTrackFile); } else { // Regular cart var; save trash paths (possibly encoded) in value, if any are found. char *newVal = cloneString(var->val); saveTrashPaths(&newVal, sessionDir, FALSE); saveTrashPaths(&newVal, sessionDir, TRUE); - if (newVal != var->val && differentString(newVal, var->val)) + // Special case for lost hgPcr result trash files: prevent errAbort in hgTracks + if (startsWith("hgPcrResult_", var->name) && sameString(newVal, " ")) + cartRemove(cart, var->name); + else if (newVal != var->val && differentString(newVal, var->val)) cartSetString(cart, var->name, newVal); freeMem(newVal); } } } }