Get a postgresql9.5 package and build it, it will fail.
Re-run the failing command:

$ gdb /usr/bin/openjade
(gdb): run -wall -wno-unused-param -wno-empty -wfully-tagged -wnet -D . -D . -c 
/usr/share/sgml/docbook/stylesheet/dsssl/modular/catalog -d stylesheet.dsl -t 
sgml -i output-html -V html-index postgres.sgml


Program received signal SIGSEGV, Segmentation fault.
0x0000fffff7ee3040 in 
OpenSP::Vector<OpenJade_DSSSL::ProcessingMode::Rule*>::erase (p1=0x1, p2=0x2, 
this=<optimized out>, this=<optimized out>) at 
/usr/include/OpenSP/Vector.cxx:131
131     /usr/include/OpenSP/Vector.cxx: No such file or directory.
(gdb) bt
#0  0x0000fffff7ee3040 in 
OpenSP::Vector<OpenJade_DSSSL::ProcessingMode::Rule*>::erase (p1=0x1, p2=0x2, 
this=<optimized out>, this=<optimized out>) at 
/usr/include/OpenSP/Vector.cxx:131
#1  0x0000fffff7ee3038 in 
OpenJade_DSSSL::ProcessingMode::RootRule::compareSpecificity (this=<optimized 
out>, rule=...) at ProcessingMode.cxx:331
#2  0x0000fffff7ee4dc0 in OpenJade_DSSSL::ProcessingMode::addRootRule 
(this=<optimized out>, expr=..., 
ruleType=OpenJade_DSSSL::ProcessingMode::constructionRule, loc=..., interp=...)
    at /usr/include/OpenSP/Vector.h:49
#3  0x0000fffff7eec698 in OpenJade_DSSSL::SchemeParser::doRoot 
(this=this@entry=0xffffffffe800) at SchemeParser.cxx:484
#4  0x0000fffff7ef4254 in OpenJade_DSSSL::SchemeParser::parse 
(this=this@entry=0xffffffffe800) at SchemeParser.cxx:190
#5  0x0000fffff7ef9c0c in OpenJade_DSSSL::StyleEngine::parseSpec 
(this=this@entry=0xaaaaaab7f670, specParser=..., charset=..., id=..., mgr=..., 
defVars=...) at StyleEngine.cxx:166
#6  0x0000fffff7e78ad0 in OpenJade_DSSSL::DssslApp::processSysid 
(this=0xffffffffeae8, sysid=...) at /usr/include/OpenSP/CodingSystemKit.h:52
#7  0x0000fffff7b499c8 in OpenSP::EntityApp::processArguments(int, char**) () 
from /lib/libosp.so.5
#8  0x0000fffff7b39dd4 in OpenSP::CmdLineApp::run(int, char**) () from 
/lib/libosp.so.5
#9  0x0000aaaaaaacbc54 in ?? ()
#10 0x0000fffff76f0090 in __libc_start_main (main=0xaaaaaaacbc08, argc=21, 
argv=0xfffffffff258, init=<optimized out>, fini=<optimized out>, 
rtld_fini=<optimized out>, 
    stack_end=<optimized out>) at ../csu/libc-start.c:308
#11 0x0000aaaaaaacd060 in ?? ()
Backtrace stopped: not enough registers or memory available to unwind further

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to openjade in Ubuntu.
https://bugs.launchpad.net/bugs/1869734

Title:
  openjade segfaults on arm (due to gcc optimization)

Status in openjade package in Ubuntu:
  Triaged

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://pgdgbuild.dus.dg-i.net/job/postgresql-9.5-binaries/architecture=arm64,distribution=focal/55/console

  <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://github.com/postgres/postgres/tree/REL9_5_STABLE
  <Myon>        the crash is in /usr/lib/libostyle.so.1 from libostyle1c2
  <cpaelzer>    here it is
  <cpaelzer>    segfault

  <Myon>        I have this now http://paste.debian.net/1136839/
  <cpaelzer>    https://paste.ubuntu.com/p/CfzrfWkqzs/

  <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 :(

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/1869734/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to