openjade segfaults on all arch
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openjade (Debian) |
Fix Released
|
Unknown
|
|||
openjade (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
pgpool2 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
<Myon> cpaelzer: fun, openjade segfaulting on focal/arm64
<cpaelzer> I beg your pardon for my ignorance of the ecosystem, but how is this related to postgresql-apt
<cpaelzer> for doc generation?
<Myon> cpaelzer: the postgresql-9.5 and -9.6 builds fail during doc generation on focal/arm64
<Myon> everything else (other archs, other dists) is fine
<Myon> https:/
<cpaelzer> Myon: only on arm64?
<Myon> only there, yes
<Myon> ./configure && make -C doc/src/sgml all should reproduce it
<cpaelzer> clone and build this branch ? https:/
<Myon> the crash is in /usr/lib/
<cpaelzer> here it is
<cpaelzer> segfault
<Myon> I have this now http://
<cpaelzer> https:/
<cpaelzer> well I wanted to get -O0 to see more int he debugger
<cpaelzer> my build worked as well now
<Myon> the -O0 openjade installed doesn't segfault
<cpaelzer> oh so like my -O0 then
<cpaelzer> so maybe we should just always -O0 openjade then?
<cpaelzer> TBH who cares about optimization in that
<cpaelzer> But its usage is mostly build time and not runtime
<Myon> maybe -O0 on arm64 only
<cpaelzer> I'm rebulding -O2 again to recheck if that really is it
<cpaelzer> and then -O1 to check the in between
<cpaelzer> it might "just" need a rebuild
<cpaelzer> -O2 re-build segfault
<cpaelzer> -O1 (for completeness) rebuild ... seems to hang?
<Myon> probably not really relevant
<cpaelzer> agreed, but I want to rebuild -O0 again just to see it builds and then works
<cpaelzer> -O0 on arm64 really seems to be a good choice
<Myon> I can try if rebuilding makes it fail on sid
<Myon> cpaelzer: recompiling openjade in arm64/sid doesn't make it segfault
<Myon> so it seems this needs a focal-only fix
<Myon> cpaelzer: the openjade segfault is also present in pgpool2, so not just in ancient PostgreSQL :(
Changed in openjade (Ubuntu): | |
status: | New → Triaged |
tags: | added: patch |
summary: |
- openjade segfaults on arm (due to gcc optimization) + openjade segfaults on all arch |
Changed in openjade (Debian): | |
status: | Unknown → Fix Released |
Changed in pgpool2 (Ubuntu): | |
status: | New → Fix Released |
Get a postgresql9.5 package and build it, it will fail.
Re-run the failing command:
$ gdb /usr/bin/openjade sgml/docbook/ stylesheet/ dsssl/modular/ catalog -d stylesheet.dsl -t sgml -i output-html -V html-index postgres.sgml
(gdb): run -wall -wno-unused-param -wno-empty -wfully-tagged -wnet -D . -D . -c /usr/share/
Program received signal SIGSEGV, Segmentation fault. :Vector< OpenJade_ DSSSL:: ProcessingMode: :Rule*> ::erase (p1=0x1, p2=0x2, this=<optimized out>, this=<optimized out>) at /usr/include/ OpenSP/ Vector. cxx:131 OpenSP/ Vector. cxx: No such file or directory. :Vector< OpenJade_ DSSSL:: ProcessingMode: :Rule*> ::erase (p1=0x1, p2=0x2, this=<optimized out>, this=<optimized out>) at /usr/include/ OpenSP/ Vector. cxx:131 DSSSL:: ProcessingMode: :RootRule: :compareSpecifi city (this=<optimized out>, rule=...) at ProcessingMode. cxx:331 DSSSL:: ProcessingMode: :addRootRule (this=<optimized out>, expr=..., ruleType= OpenJade_ DSSSL:: ProcessingMode: :constructionRu le, loc=..., interp=...) OpenSP/ Vector. h:49 DSSSL:: SchemeParser: :doRoot (this=this@ entry=0xfffffff fe800) at SchemeParser. cxx:484 DSSSL:: SchemeParser: :parse (this=this@ entry=0xfffffff fe800) at SchemeParser. cxx:190 DSSSL:: StyleEngine: :parseSpec (this=this@ entry=0xaaaaaab 7f670, specParser=..., charset=..., id=..., mgr=..., defVars=...) at StyleEngine.cxx:166 DSSSL:: DssslApp: :processSysid (this=0xfffffff feae8, sysid=...) at /usr/include/ OpenSP/ CodingSystemKit .h:52 :EntityApp: :processArgumen ts(int, char**) () from /lib/libosp.so.5 :CmdLineApp: :run(int, char**) () from /lib/libosp.so.5 cbc08, argc=21, argv=0xffffffff f258, init=<optimized out>, fini=<optimized out>, rtld_fini= <optimized out>, end=<optimized out>) at ../csu/ libc-start. c:308
0x0000fffff7ee3040 in OpenSP:
131 /usr/include/
(gdb) bt
#0 0x0000fffff7ee3040 in OpenSP:
#1 0x0000fffff7ee3038 in OpenJade_
#2 0x0000fffff7ee4dc0 in OpenJade_
at /usr/include/
#3 0x0000fffff7eec698 in OpenJade_
#4 0x0000fffff7ef4254 in OpenJade_
#5 0x0000fffff7ef9c0c in OpenJade_
#6 0x0000fffff7e78ad0 in OpenJade_
#7 0x0000fffff7b499c8 in OpenSP:
#8 0x0000fffff7b39dd4 in OpenSP:
#9 0x0000aaaaaaacbc54 in ?? ()
#10 0x0000fffff76f0090 in __libc_start_main (main=0xaaaaaaa
stack_
#11 0x0000aaaaaaacd060 in ?? ()
Backtrace stopped: not enough registers or memory available to unwind further