This bug was likely introduced in commit 0689a6e26d5552dd64fdd4263985e1857236fd92
(recently updated my machines from version before this commit; before the update everything seemed to work fine with both gcc-5 and gcc-7)
When compiled with gcc-5, everything works fine
When compiled with gcc-7, hgTrackDb segfaults; in my case, the command that fails is hgTrackDb -release=alpha magCap magCapA5 trackDb /kent/kent/src/hg/lib/trackDb.sql .
valgrind trace:
==15332== Invalid read of size 8
==15332== at 0x153F25: trackDbLocalSetting (trackDbCustom.c:477)
==15332== by 0x1541F3: trackDbSetting (trackDbCustom.c:809)
==15332== by 0x154222: trackDbFieldsFromSettings (trackDbCustom.c:161)
==15332== by 0x1143D7: polishSupers (hgTrackDb.c:697)
==15332== by 0x1143D7: buildTrackDb (hgTrackDb.c:744)
==15332== by 0x1143D7: hgTrackDb (hgTrackDb.c:794)
==15332== by 0x11504F: main (hgTrackDb.c:910)
==15332== Address 0x81 is not stack'd, malloc'd or (recently) free'd
(I would say, something improper is passed in place of the tdb pointer somewhere)
This bug was likely introduced in commit 0689a6e26d5552dd64fdd4263985e1857236fd92 (recently updated my machines from version before this commit; before the update everything seemed to work fine with both gcc-5 and gcc-7)
When compiled with gcc-5, everything works fine When compiled with gcc-7, hgTrackDb segfaults; in my case, the command that fails is hgTrackDb -release=alpha magCap magCapA5 trackDb /kent/kent/src/hg/lib/trackDb.sql .
valgrind trace: ==15332== Invalid read of size 8 ==15332== at 0x153F25: trackDbLocalSetting (trackDbCustom.c:477) ==15332== by 0x1541F3: trackDbSetting (trackDbCustom.c:809) ==15332== by 0x154222: trackDbFieldsFromSettings (trackDbCustom.c:161) ==15332== by 0x1143D7: polishSupers (hgTrackDb.c:697) ==15332== by 0x1143D7: buildTrackDb (hgTrackDb.c:744) ==15332== by 0x1143D7: hgTrackDb (hgTrackDb.c:794) ==15332== by 0x11504F: main (hgTrackDb.c:910) ==15332== Address 0x81 is not stack'd, malloc'd or (recently) free'd
(I would say, something improper is passed in place of the tdb pointer somewhere)