Acknowledgement sent
to John David Anglin <[email protected]>:
New Bug report received and forwarded. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Mon, 02 Nov 2020 21:21:07 GMT) (full text, mbox, link).
Subject: qtdeclarative5-dev-tools: qmlcachegen segfaults on hppa
Date: Mon, 02 Nov 2020 21:18:35 +0000
Package: qtdeclarative5-dev-tools
Version: 5.14.2+dfsg-3
Severity: normal
Dear Maintainer,
The qtgraphicaleffects-opensource-src package fails to build on hppa
because qmlcachegen faults with out-of bounds references:
do_page_fault() command='qmlcachegen' type=15 address=0xf98c4020 in qmlcachegen[10000+c5000]
trap #15: Data TLB miss fault, vm_start = 0xf90c4000, vm_end = 0xf98c4000
do_page_fault() command='qmlcachegen' type=15 address=0xfaed5000 in libQt5Core.so.5.15.1[f7f28000+5e6000]
trap #15: Data TLB miss fault, vm_start = 0xfa6d5000, vm_end = 0xfaed5000
do_page_fault() command='qmlcachegen' type=15 address=0xf99b9000 in libQt5Core.so.5.15.1[f7f28000+5e6000]
trap #15: Data TLB miss fault, vm_start = 0xf91b9000, vm_end = 0xf99b9000
See
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973646
for details regarding the qtgraphicaleffects-opensource-src build.
Regards,
Dave Anglin
-- System Information:
Debian Release: bullseye/sid
APT prefers buildd-unstable
APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)
Kernel: Linux 5.8.18+ (SMP w/4 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages qtdeclarative5-dev-tools depends on:
ii libc6 2.31-4
ii libgcc-s4 10.2.0-16
ii libqt5core5a [qtbase-abi-5-14-2] 5.14.2+dfsg-6
ii libqt5gui5 5.14.2+dfsg-6
ii libqt5network5 5.14.2+dfsg-6
ii libqt5qml5 [qtdeclarative-abi-5-14-2] 5.14.2+dfsg-3
ii libqt5quick5 5.14.2+dfsg-3
ii libqt5quicktest5 5.14.2+dfsg-3
ii libqt5widgets5 5.14.2+dfsg-6
ii libstdc++6 10.2.0-16
ii qtchooser 66-2
qtdeclarative5-dev-tools recommends no packages.
qtdeclarative5-dev-tools suggests no packages.
-- no debconf information
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Thu, 05 Nov 2020 16:36:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: Acknowledgement (qtdeclarative5-dev-tools:
qmlcachegen segfaults on hppa)
Date: Thu, 5 Nov 2020 11:25:37 -0500
The segfault is caused by stack overflow. On hppa, the kernel config parameter CONFIG_MAX_STACK_SIZE_MB
sets the maximum stack size. This is because the main stack is allocated at the top of memory and the stack grows
up. 256 MB is not enough.
dave@mx3210:~/debian/qtgraphicaleffects-opensource-src/qtgraphicaleffects-openso
urce-src-5.15.1/src/effects/private$ gdb -c core /usr/lib/qt5/bin/qmlcachegen
GNU gdb (Debian 9.2-1+b1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "hppa-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/qt5/bin/qmlcachegen...
Reading symbols from /usr/lib/debug/.build-id/c5/9795c94efa883bf7fe6d0716815c3d08437aaf.debug...
[New LWP 17773]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/lib/qt5/bin/qmlcachegen -o ../../../qml/QtGraphicalEffects/private/DropSha'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000ad7e8 in QMapData<QString, QV4::Compiler::Context::Member>::findNode (
akey=..., this=<optimized out>, this=<optimized out>)
at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:281
281 QMapNode<Key, T> *QMapData<Key, T>::findNode(const Key &akey) const
(gdb) disass $pc-16,$pc+16
Dump of assembler code from 0xad7d8 to 0xad7f8:
0x000ad7d8 <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+316>: stw,ma r21,4(r20)
0x000ad7dc <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+320>: b,l 0xad754
<QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+184>,r0
0x000ad7e0 <QVector<QV4::Moth::BytecodeGenerator::I>::append(QV4::Moth::BytecodeGenerator::I const&)+324>: ldw 0(r3),r20
0x000ad7e4 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+0>: stw rp,-14(sp)
=> 0x000ad7e8 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+4>: stw,ma r6,40(sp)
0x000ad7ec <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+8>: ldi 0,r6
0x000ad7f0 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+12>: stw r5,-3c(sp)
0x000ad7f4 <QMapData<QString, QV4::Compiler::Context::Member>::findNode(QString const&) const+16>: copy r25,r5
End of assembler dump.
(gdb) bt
#0 0x000ad7e8 in QMapData<QString, QV4::Compiler::Context::Member>::findNode (
akey=..., this=<optimized out>, this=<optimized out>)
at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:281
#1 0x000ad970 in QMap<QString, QV4::Compiler::Context::Member>::constFind (
akey=..., this=<optimized out>)
at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:853
#2 QMap<QString, QV4::Compiler::Context::Member>::find (akey=...,
this=<optimized out>) at /usr/include/hppa-linux-gnu/qt5/QtCore/qmap.h:855
#3 QV4::Compiler::Context::findMember (name=..., this=<optimized out>)
at ../qml/compiler/qv4compilercontext_p.h:304
#4 QV4::Compiler::Context::resolveName (this=0xebea8, name=...,
accessLocation=...) at ../qml/compiler/qv4compilercontext.cpp:137
#5 0x000374e4 in QV4::Compiler::Codegen::referenceForName (this=0xee3674b8,
name=..., isLhs=168, accessLocation=...)
at ../qml/compiler/qv4codegen.cpp:2374
#6 0x00038320 in QV4::Compiler::Codegen::Reference::storeAccumulator (
this=0xee367494)
at ../../include/QtQml/5.15.1/QtQml/private/../../../../../src/qml/common/qqmljssourcelocation_p.h:63
#7 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130
#8 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0,
slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186
--Type <RET> for more, q to quit, c to continue without paging--
#9 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0)
at ../qml/compiler/qv4codegen.cpp:4231
#10 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494)
at ../qml/compiler/qv4codegen.cpp:4231
#11 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130
#12 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0,
slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186
#13 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0)
at ../qml/compiler/qv4codegen.cpp:4231
#14 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494)
at ../qml/compiler/qv4codegen.cpp:4231
#15 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130
#16 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0,
slotIndex=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4186
#17 0x00038348 in QV4::Compiler::Codegen::Reference::storeOnStack (this=0x0)
at ../qml/compiler/qv4codegen.cpp:4231
#18 QV4::Compiler::Codegen::Reference::storeAccumulator (this=0xee367494)
at ../qml/compiler/qv4codegen.cpp:4231
#19 0x000384c8 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at ../qml/compiler/qv4codegen.cpp:4130
#20 0x00038640 in QV4::Compiler::Codegen::Reference::doStoreOnStack (this=0x0,
--Type <RET> for more, q to quit, c to continue without paging--q
Quit
How much stack does qmlcachegen typically need?
Another possibility is doStoreOnStack doesn't work on hppa.
Regards,
Dave Anglin
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Thu, 05 Nov 2020 17:24:03 GMT) (full text, mbox, link).
Hi!
On Thu, Nov 05, 2020 at 11:25:37AM -0500, John David Anglin wrote:
> The segfault is caused by stack overflow. On hppa, the kernel config
> parameter CONFIG_MAX_STACK_SIZE_MB sets the maximum stack size. This is
> because the main stack is allocated at the top of memory and the stack grows
> up. 256 MB is not enough.
>
> [...]
>
> How much stack does qmlcachegen typically need?
No idea, but I guess it depends on the size of QML file being cached.
> Another possibility is doStoreOnStack doesn't work on hppa.
I think the complete QML engine may be broken on hppa, not just qmlcachegen.
A lot of tests are failing — search for FAIL! in the build log:
https://buildd.debian.org/status/fetch.php?pkg=qtdeclarative-opensource-src&arch=hppa&ver=5.14.2%2Bdfsg-3&stamp=1595527978
--
Dmitry Shachnev
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Thu, 05 Nov 2020 20:51:03 GMT) (full text, mbox, link).
On 2020-11-05 12:20 p.m., Dmitry Shachnev wrote:
>> Another possibility is doStoreOnStack doesn't work on hppa.
> I think the complete QML engine may be broken on hppa, not just qmlcachegen.
>
> A lot of tests are failing — search for FAIL! in the build log:
>
> https://buildd.debian.org/status/fetch.php?pkg=qtdeclarative-opensource-src&arch=hppa&ver=5.14.2%2Bdfsg-3&stamp=1595527978
The attached patch fixes qtdeclarative-opensource-src-5.15.1+dfsg.orig/src/3rdparty/masm/wtf/Platform.h for hppa. That's
the only platform configuration that I could find in the package.
The PA-RISC architecture is big endian. Perhaps this needs to be defined somewhere else as well?
Regards,
Dave Anglin
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Sat, 07 Nov 2020 18:24:02 GMT) (full text, mbox, link).
Hi John!
On Thu, Nov 05, 2020 at 03:49:47PM -0500, John David Anglin wrote:
> The attached patch fixes
> qtdeclarative-opensource-src-5.15.1+dfsg.orig/src/3rdparty/masm/wtf/Platform.h
> for hppa. That's the only platform configuration that I could find in the
> package.
I think the problem is not that hppa is not detected, but rather that the code
has some assumptions about the stack growing down. The QML engine has a lot of
low-level code...
Can you check if your patch actually makes some tests pass that failed without
it?
> The PA-RISC architecture is big endian. Perhaps this needs to be defined
> somewhere else as well?
Qt uses this file from qtbase:
https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/qprocessordetection.h
which falls back to gcc's __BYTE_ORDER__ macro for unknown architectures.
So it should work fine if that macro is defined correctly on hppa.
--
Dmitry Shachnev
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Sat, 07 Nov 2020 23:09:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on
hppa
Date: Sat, 7 Nov 2020 18:07:02 -0500
Hi Dmitry,
On 2020-11-07 1:20 p.m., Dmitry Shachnev wrote:
> I think the problem is not that hppa is not detected, but rather that the code
> has some assumptions about the stack growing down. The QML engine has a lot of
> low-level code...
That's what I was afraid of. If these assumptions are localized, it would help if you could
point them out. The code seems to have its own stack implementation.
>
> Can you check if your patch actually makes some tests pass that failed without
> it?
I revised the patch somewhat but it doesn't help much.
>
>> The PA-RISC architecture is big endian. Perhaps this needs to be defined
>> somewhere else as well?
> Qt uses this file from qtbase:
>
> https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/qprocessordetection.h
>
> which falls back to gcc's __BYTE_ORDER__ macro for unknown architectures.
> So it should work fine if that macro is defined correctly on hppa.
As far as I know, the __BYTE_ORDER__ macro is defined correctly for hppa.
Regards,
Dave
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Mon, 09 Nov 2020 18:39:03 GMT) (full text, mbox, link).
On Sat, Nov 07, 2020 at 06:07:02PM -0500, John David Anglin wrote:
> That's what I was afraid of. If these assumptions are localized, it would
> help if you could point them out.
I can't point them out :(
But I can suggest you to contact upstream (via the mailing list or via
bugreports.qt.io) and ask them where such code may be present.
I only found one old bug report and it was fixed:
https://bugreports.qt.io/browse/QTBUG-44268
--
Dmitry Shachnev
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Mon, 01 Feb 2021 22:09:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on
hppa
Date: Mon, 1 Feb 2021 16:47:47 -0500
On 2020-11-09 1:35 p.m., Dmitry Shachnev wrote:
> I only found one old bug report and it was fixed:
> https://bugreports.qt.io/browse/QTBUG-44268
I think we have to go back to the original backtrace and the test failures.
I thought that for a bit that we might have a problem similar to ia64 and sparc64 but
hppa is currently 32-bit.
Test tst_qjsvalueiterator fails as follows:
dave@mx3210:~/debian/qtdeclarative-opensource-src$
/home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.15.2+dfsg/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator
********* Start testing of tst_QJSValueIterator *********
Config: Using QtTest library 5.15.2, Qt 5.15.2 (unknown-big_endian-ilp32 shared (dynamic) release build; by GCC 10.2.1 20210110), debian unknown
PASS : tst_QJSValueIterator::initTestCase()
PASS : tst_QJSValueIterator::iterateForward(no properties)
PASS : tst_QJSValueIterator::iterateForward(foo=bar)
PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123)
PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123, rab=oof)
PASS : tst_QJSValueIterator::iterateArray(no elements)
PASS : tst_QJSValueIterator::iterateArray(0=foo, 1=barr)
PASS : tst_QJSValueIterator::iterateArray(0=foo, 3=barr)
=== Received signal at function time: 70ms, total time: 310ms, dumping stack ===
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "hppa-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 2844
[New LWP 2845]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1".
clone () at ../sysdeps/unix/sysv/linux/hppa/clone.S:83
(gdb)
Thread 2 (Thread 0xef8b3400 (LWP 2845) "QThread"):
#0 0xf594183c in _int_malloc (av=0x0, bytes=4010488392) at malloc.c:4116
p = <optimized out>
iters = <optimized out>
nb = 164456
idx = 1
bin = <optimized out>
victim = 0x28240
size = 210
victim_index = <optimized out>
remainder = 0xffffffff
remainder_size = 4294803050
block = <optimized out>
bit = <optimized out>
map = 0
fwd = <optimized out>
bck = <optimized out>
tcache_unsorted_count = 164424
tcache_nb = 4010488392
tc_idx = 0
return_cached = <optimized out>
__PRETTY_FUNCTION__ = "_int_malloc"
#1 0x00000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
^CDetaching from program:
/home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.15.2+dfsg/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator,
process 2844
[Inferior 1 (process 2844) detached]
=== End of stack trace ===
QFATAL : tst_QJSValueIterator::iterateString() Received signal 11
Function time: 70ms Total time: 310ms
FAIL! : tst_QJSValueIterator::iterateString() Received a fatal error.
Loc: [Unknown file(0)]
Totals: 8 passed, 1 failed, 0 skipped, 0 blacklisted, 258862ms
********* Finished testing of tst_QJSValueIterator *********
Aborted (core dumped)
dave@mx3210:~/debian/qtdeclarative-opensource-src$ gdb -c core
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "hppa-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing
warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing
[New LWP 2844]
[New LWP 2845]
Core was generated by `/home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.1'.
Program terminated with signal SIGABRT, Aborted.
#0 0xf5932b5c in ?? ()
[Current thread is 1 (LWP 2844)]
(gdb) quit
The test again fails because of a stack overflow.
gdb -c tests/auto/qml/qjsvalueiterator/core tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "hppa-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator...
warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing
warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing
warning: core file may not match specified executable file.
[New LWP 20351]
[New LWP 20352]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1".
Core was generated by `./tst_qjsvalueiterator'.
Program terminated with signal SIGABRT, Aborted.
#0 0xf5d32b5c in __vsnprintf_internal (
--Type <RET> for more, q to quit, c to continue without paging--
string=0x2 <error: Cannot access memory at address 0x2>,
maxlen=4144215688, format=0x0, args=0x8, mode_flags=<optimized out>)
at vsnprintf.c:95
95 vsnprintf.c: No such file or directory.
[Current thread is 1 (Thread 0xf7afa040 (LWP 20351))]
(gdb) bt
#0 0xf5d32b5c in __vsnprintf_internal (
string=0x2 <error: Cannot access memory at address 0x2>,
maxlen=4144215688, format=0x0, args=0x8, mode_flags=<optimized out>)
at vsnprintf.c:95
#1 0xf5cdaa00 in __GI_abort () at abort.c:79
#2 0xf688177c in qt_message_fatal (message=<synthetic pointer>...,
context=...) at global/qlogging.cpp:1914
#3 QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>)
at global/qlogging.cpp:893
#4 0xf7001eb8 in ?? () from /usr/lib/hppa-linux-gnu/libQt5Test.so.5
#5 <signal handler called>
#6 0xf7247d90 in QHash<QString, int>::findNode (this=0xf83b14b8, akey=...,
h=733811337) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:924
#7 0xf7244acc in QHash<QString, int>::findNode (ahp=0x0, akey=...,
this=0xf83b14b8) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:950
#8 QHash<QString, int>::constFind (akey=..., this=0xf83b14b8)
at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:907
#9 QV4::Compiler::StringTableGenerator::registerString (this=0xf83b14b8,
str=...) at compiler/qv4compiler.cpp:67
#10 0xf7254f34 in QV4::Compiler::JSUnitGenerator::registerString (str=...,
this=<optimized out>)
at ../../include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/compiler/qv4compiler_p.h:118
--Type <RET> for more, q to quit, c to continue without paging--
#11 QV4::Compiler::Codegen::registerString (name=..., this=<optimized out>)
at compiler/qv4codegen_p.h:512
#12 QV4::Compiler::Codegen::Reference::nameAsIndex (this=0xf8badcf8)
at compiler/qv4codegen_p.h:339
#13 QV4::Compiler::Codegen::Reference::loadInAccumulator (this=0xf8badcf8)
at compiler/qv4codegen.cpp:4425
#14 0xf725819c in QV4::Compiler::Codegen::Reference::doStoreOnStack (
this=0xf8badec8, slotIndex=<optimized out>) at compiler/qv4codegen.cpp:4185
#15 0xf725845c in QV4::Compiler::Codegen::Reference::storeOnStack (
this=<optimized out>) at compiler/qv4codegen.cpp:4157
#16 0xf7257eb8 in QV4::Compiler::Codegen::Reference::storeAccumulator (
this=0xf83b1494) at compiler/qv4codegen.cpp:4231
#17 0xf7258038 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at compiler/qv4codegen.cpp:4130
#18 0xf72581b0 in QV4::Compiler::Codegen::Reference::doStoreOnStack (
this=0xf8badec8, slotIndex=<optimized out>) at compiler/qv4codegen.cpp:4186
#19 0xf725845c in QV4::Compiler::Codegen::Reference::storeOnStack (
this=<optimized out>) at compiler/qv4codegen.cpp:4157
#20 0xf7257eb8 in QV4::Compiler::Codegen::Reference::storeAccumulator (
this=0xf83b1494) at compiler/qv4codegen.cpp:4231
#21 0xf7258038 in QV4::Compiler::Codegen::Reference::storeConsumeAccumulator (
this=<optimized out>) at compiler/qv4codegen.cpp:4130
#22 0xf72581b0 in QV4::Compiler::Codegen::Reference::doStoreOnStack (
--Type <RET> for more, q to quit, c to continue without paging--q
Quit
(gdb) frame 6
#6 0xf7247d90 in QHash<QString, int>::findNode (this=0xf83b14b8, akey=...,
h=733811337) at /usr/include/hppa-linux-gnu/qt5/QtCore/qhash.h:924
924 Q_OUTOFLINE_TEMPLATE typename QHash<Key, T>::Node **QHash<Key, T>::findNode(const Key &akey, uint h) const
(gdb) disass $pc-16,$pc+16
Dump of assembler code from 0xf7247d80 to 0xf7247da0:
0xf7247d80 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+96>: ldw -94(sp),rp
0xf7247d84 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+100>: bv r0(rp)
0xf7247d88 <_ZN7QVectorIN3QV48Compiler5Class6MethodEED2Ev+104>: ldw,mb -80(sp),r4
0xf7247d8c <_ZNK5QHashI7QStringiE8findNodeERKS0_j+0>: stw rp,-14(sp)
=> 0xf7247d90 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+4>: stw,ma r7,80(sp)
0xf7247d94 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+8>: copy r25,r7
0xf7247d98 <_ZNK5QHashI7QStringiE8findNodeERKS0_j+12>: stw r6,-7c(sp)
0xf7247d9c <_ZNK5QHashI7QStringiE8findNodeERKS0_j+16>: copy r24,r6
The fault occurs in at the beginning of _ZNK5QHashI7QStringiE8findNodeERKS0_j when r7 is saved to the stack.
It looks to me like the problem might be in QHash hash lookup. Something is being called recursively.
Regards,
Dave
--
John David Anglin [email protected]
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Tue, 02 Feb 2021 15:09:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on
hppa
Date: Tue, 2 Feb 2021 10:07:52 -0500
On 2021-02-01 4:47 p.m., John David Anglin wrote:
> Test tst_qjsvalueiterator fails as follows:
> dave@mx3210:~/debian/qtdeclarative-opensource-src$
> /home/dave/debian/qtdeclarative-opensource-src/qtdeclarative-opensource-src-5.15.2+dfsg/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator
> ********* Start testing of tst_QJSValueIterator *********
> Config: Using QtTest library 5.15.2, Qt 5.15.2 (unknown-big_endian-ilp32 shared (dynamic) release build; by GCC 10.2.1 20210110), debian unknown
> PASS : tst_QJSValueIterator::initTestCase()
> PASS : tst_QJSValueIterator::iterateForward(no properties)
> PASS : tst_QJSValueIterator::iterateForward(foo=bar)
> PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123)
> PASS : tst_QJSValueIterator::iterateForward(foo=bar, baz=123, rab=oof)
> PASS : tst_QJSValueIterator::iterateArray(no elements)
> PASS : tst_QJSValueIterator::iterateArray(0=foo, 1=barr)
> PASS : tst_QJSValueIterator::iterateArray(0=foo, 3=barr)
>
> === Received signal at function time: 70ms, total time: 310ms, dumping stack ===
In looking at the JS Value encoding in src/qml/common/qv4staticvalue_p.h, I suspect there might be
an issue with NaN/Inf values on hppa. hppa and early mips used a different representation for signalling
and quiet NaNs. This would need to be taken into account in converting between JS and hardware values.
It seems hppa is the only big endian ilp32 architecture.
Dave
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Thu, 04 Feb 2021 18:30:03 GMT) (full text, mbox, link).
Hi John!
On Tue, Feb 02, 2021 at 10:07:52AM -0500, John David Anglin wrote:
> In looking at the JS Value encoding in src/qml/common/qv4staticvalue_p.h,
> I suspect there might be an issue with NaN/Inf values on hppa. hppa and
> early mips used a different representation for signalling and quiet NaNs.
> This would need to be taken into account in converting between JS and
> hardware values.
Thanks a lot for your investigation!
I know almost nothing about hppa, and I don’t have much time to debug this,
but if you provide a patch that will make more tests pass on hppa (and does
not break other architectures), I will be happy to apply it (and help with
pushing it upstream).
Quick search showed me #810859 which looks like a similar problem in a
different package.
--
Dmitry Shachnev
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Thu, 04 Feb 2021 18:42:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on
hppa
Date: Thu, 4 Feb 2021 13:39:04 -0500
On 2021-02-04 1:25 p.m., Dmitry Shachnev wrote:
> I know almost nothing about hppa, and I don’t have much time to debug this,
> but if you provide a patch that will make more tests pass on hppa (and does
> not break other architectures), I will be happy to apply it (and help with
> pushing it upstream).
That's the dichotomy. I know hppa but not Qt. It painful to find the parts of Qt that
depend on endianness, stack layout, and possibly the NaN representation.
>
> Quick search showed me #810859 which looks like a similar problem in a
> different package.
Yes. That bug was caused by the different representation of quiet and signalling NaNs.
Regards,
Dave
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Fri, 05 Feb 2021 12:45:05 GMT) (full text, mbox, link).
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Sat, 06 Feb 2021 17:33:03 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on
hppa
Date: Sat, 6 Feb 2021 12:28:42 -0500
On 2021-02-05 7:41 a.m., Dmitry Shachnev wrote:
> For NaN, you probably need to check if these masks are correct:
>
> https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L285
> https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L305
>
> and this method:
>
> https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.2+dfsg-4/src/qml/common/qv4staticvalue_p.h/#L354
>
I believe the isNaN method should check for both quiet and signalling NaN encodings (0x00040000 and 0x00080000).
As best I can tell, the quiet and signalling encodings will end up reversed on hppa due to the value returned by qt_qnan().
I believe the "| 0x00020000u" bit is redundant in the definition of Immediate_Mask_32.
However, I don't believe the above issues are the main problem. The build log history indicates that version 5.11.3-4 was
okay and 5.12.2-1 was bad. This is indicated by a segmentation fault by tst_parserstress, the first test in the testsuite.
It would be nice to bisect changes between 5.11.3-4 and 5.12.2-1 to find the change that causes the problem. However,
I'm not away of a suitable archive.
There are also issues building 5.11.3-4 on sid:
qml/qqmlmetatype.cpp: In member function 'void QQmlTypePrivate::insertEnums(const QMetaObject*) const':
qml/qqmlmetatype.cpp:811:60: error: cannot convert 'const QMetaObject::SuperData* const' to 'const QMetaObject* const*' in initialization
811 | const QMetaObject * const *related = metaObject->d.relatedMetaObjects;
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~
~~~~~
| |
| const QMetaObject::SuperData* const
There was a crashing bug patch in 5.11.3-4 that was removed in 5.12.2-1. Code was changed.
Regards,
Dave
--
John David Anglin [email protected]
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Tue, 09 Feb 2021 19:06:03 GMT) (full text, mbox, link).
Hi again!
On Sat, Feb 06, 2021 at 12:28:42PM -0500, John David Anglin wrote:
> There was a crashing bug patch in 5.11.3-4 that was removed in 5.12.2-1.
> Code was changed.
That's because the relevant code is no longer present in 5.12, see:
https://codereview.qt-project.org/c/qt/qtdeclarative/+/254748
Also I checked the test that fails on s390x, and it turned out to be a
problem in the test. I submitted a patch for it:
https://codereview.qt-project.org/c/qt/qtdeclarative/+/333611
So the code is compatible with big endian, generally speaking. This means
issues on hppa are probably related to stack or other hppa specifics, not
to endianness.
--
Dmitry Shachnev
Acknowledgement sent
to John David Anglin <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Tue, 09 Feb 2021 20:51:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Dmitry Shachnev <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Wed, 10 Feb 2021 10:39:02 GMT) (full text, mbox, link).
Subject: Re: Bug#973659: qtdeclarative5-dev-tools: qmlcachegen segfaults on hppa
Date: Wed, 10 Feb 2021 13:34:34 +0300
On February 9, 2021 11:48:08 PM GMT+03:00, John David Anglin <[email protected]> wrote:
> Is there a public qtdeclarative repository that can be cloned with
> git?
Yes: https://code.qt.io/qt/qtdeclarative.git
--
Dmitry Shachnev
Acknowledgement sent
to Gestion Comptabilité <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Qt/KDE Maintainers <[email protected]>.
(Fri, 28 Mar 2025 01:09:02 GMT) (full text, mbox, link).
Cher(e) Locataire ,
Sauf erreur de notre part, nous constatons qu'à ce jour, le règlement de
votre loyer mensuel de avril reste en attente.
Nous vous prions de bien vouloir régulariser votre situation dès réception
de ce message.
Nous vous informons également de la mise à jour de nos nouvelles
coordonnées Interac, dont l'adresse email figure ci-dessous.
Dans l'attente de votre règlement, nous vous souhaitons une bonne réception
de ce message.
Merci de votre confiance
Cordialement,
L'équipe comptabilité
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.