b027ebc0e47be9b569aa4deca8179dcb24c00118 chmalee Thu Jun 3 13:26:35 2021 -0700 Error out early in hub trackDb processing if a composite track has a container multiWig child, refs #15650 diff --git src/hg/lib/trackDbCustom.c src/hg/lib/trackDbCustom.c index f5617bb..30613d3 100644 --- src/hg/lib/trackDbCustom.c +++ src/hg/lib/trackDbCustom.c @@ -1022,30 +1022,35 @@ slAddHead(&superlessList, tdb); } /* Do subtrack hierarchy - filling in parent and subtracks fields. */ for (tdb = superlessList; tdb != NULL; tdb = next) { next = tdb->next; char *subtrackSetting = trackDbLocalSetting(tdb, "parent"); if (subtrackSetting != NULL && !tdbIsSuperTrackChild(tdb)) // superChildren cannot be in both subtracks list AND tdbList { char *parentName = cloneFirstWord(subtrackSetting); struct trackDb *parent = hashFindVal(trackHash, parentName); if (parent != NULL) { + if (trackDbLocalSetting(tdb, "container")) + { + errAbort("Composite track '%s' cannot have child track '%s'," + " which is a container multiWig.", parentName, tdb->track); + } slAddHead(&parent->subtracks, tdb); // composite/multiWig children are ONLY subtracks tdb->parent = parent; } else { errAbort("Parent track %s of child %s doesn't exist", parentName, tdb->track); } freez(&parentName); } else { slAddHead(&forest, tdb); } }