Backtrace is more readable now, erase comes from resize it seems.
#0 0x0000fffff7e4f620 in
OpenSP::NCVector<OpenSP::Owner<OpenJade_DSSSL::Expression> >::erase
(this=0xffffffffe0c8, p1=0xaaaaab46eaf0, p2=0xaaaaab46eb00)
at /usr/include/OpenSP/Vector.cxx:132
#1 0x0000fffff7e4e0e4 in
OpenSP::NCVector<OpenSP::Owner<OpenJade_DSSSL::Expression> >::resize
(this=0xffffffffe0c8, n=1) at /usr/include/OpenSP/Vector.h:29
#2 0x0000fffff7ec9ee0 in OpenJade_DSSSL::SchemeParser::parseExpression
(this=0xffffffffe538, allowed=16, expr=..., key=@0xffffffffe1cc:
OpenJade_DSSSL::Identifier::notKey,
tok=@0xffffffffe1c8: OpenJade_DSSSL::SchemeParser::tokenCloseParen) at
SchemeParser.cxx:1004
#3 0x0000fffff7ec9e8c in OpenJade_DSSSL::SchemeParser::parseExpression
(this=0xffffffffe538, allowed=0, expr=..., key=@0xffffffffe1cc:
OpenJade_DSSSL::Identifier::notKey,
tok=@0xffffffffe1c8: OpenJade_DSSSL::SchemeParser::tokenCloseParen) at
SchemeParser.cxx:1001
#4 0x0000fffff7eccdd0 in OpenJade_DSSSL::SchemeParser::parseBegin
(this=0xffffffffe538, expr=...) at SchemeParser.cxx:1551
#5 0x0000fffff7eccc54 in OpenJade_DSSSL::SchemeParser::parseBody
(this=0xffffffffe538, expr=...) at SchemeParser.cxx:1539
#6 0x0000fffff7ec92c8 in OpenJade_DSSSL::SchemeParser::parseDefine
(this=0xffffffffe538, ident=@0xffffffffe3d8: 0xaaaaab4827f0, expr=...) at
SchemeParser.cxx:861
#7 0x0000fffff7ec8ed0 in OpenJade_DSSSL::SchemeParser::doDefine
(this=0xffffffffe538) at SchemeParser.cxx:814
#8 0x0000fffff7ec5f98 in OpenJade_DSSSL::SchemeParser::parse
(this=0xffffffffe538) at SchemeParser.cxx:172
#9 0x0000fffff7e9b2d8 in OpenJade_DSSSL::Interpreter::installBuiltins
(this=0xaaaaaacf1b50) at Interpreter.cxx:2093
#10 0x0000fffff7e93448 in OpenJade_DSSSL::Interpreter::Interpreter
(this=0xaaaaaacf1b50, groveManager=0xffffffffed00, messenger=0xffffffffea50,
unitsPerInch=72000, debugMode=false,
dsssl2=false, style=true, strictMode=false, fotbDescr=...) at
Interpreter.cxx:162
#11 0x0000fffff7edb1b8 in OpenJade_DSSSL::StyleEngine::parseSpec
(this=0xaaaaaabdae80, specParser=..., charset=..., id=..., mgr=...,
defVars=...) at StyleEngine.cxx:85
#12 0x0000fffff7e2f784 in OpenJade_DSSSL::DssslApp::processSysid
(this=0xffffffffea48, sysid=...) at DssslApp.cxx:138
#13 0x0000fffff7aaa9c8 in OpenSP::EntityApp::processArguments(int, char**) ()
from /lib/libosp.so.5
#14 0x0000fffff7a9add4 in OpenSP::CmdLineApp::run(int, char**) () from
/lib/libosp.so.5
Also the line number is now correct on the access of pointer p and its
destructor call:
line 132 is:
((X *)p)->~X();
(gdb) p p
$1 = (const OpenSP::Owner<OpenJade_DSSSL::Expression> *) 0xaaaaab46eb00
Also the passed pointers are intact:
(gdb) p p1
$6 = (const OpenSP::Owner<OpenJade_DSSSL::Expression> *) 0xaaaaab46eaf0
(gdb) p p2
$7 = (const OpenSP::Owner<OpenJade_DSSSL::Expression> *) 0xaaaaab46eb00
The pointers indicate that we are at p2 already.
And that is odd compared to p1.
(gdb) p *p1
$9 = {_vptr.Owner = 0xfffff7f8a040 <vtable for
OpenSP::Owner<OpenJade_DSSSL::Expression>+16>, p_ = 0x0}
(gdb) p *p2
$10 = {_vptr.Owner = 0x6c00000063, p_ = 0x1d1}
See how the _vptr.Owner has no reasonable type.
(gdb) ptype T
type = class OpenSP::Owner<OpenJade_DSSSL::Expression> [with T =
OpenJade_DSSSL::Expression] {
private:
T *p_;
public:
Owner(void);
Owner(T *);
private:
Owner(const OpenSP::Owner<T> &);
public:
~Owner();
void operator=(T *);
private:
void operator=(const OpenSP::Owner<T> &);
public:
operator int(void) const;
T * pointer(void) const;
T * operator->(void) const;
T & operator*(void) const;
void swap(OpenSP::Owner<T> &);
T * extract(void);
void clear(void);
private:
void del(void);
}
So the question is "why is p2 not a proper
OpenSP::Owner<OpenJade_DSSSL::Expression object"
--
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