Hi Manu!

Thank you for working on this, and for reaching out here :-)

Manuel Riel <m...@snapdragon.cc> writes:

> Hi all,
>
> Thanks for tracking this bug. I couldn't reproduce it on Debian unstable with 
> Debian-provided PyQt. But it reliably fails when installing PyQt5 from PyPi.
>
> Based on other reports the key problem is the cleanup of Qt widgets. Some 
> sources suggest to remove all widgets in the right order bottom-up, but for 
> our case just removing the main (and only) window was enough:
>
> del app.main_window
>
> Here a PR to fix this by adding a more complete cleanup function: 
> https://github.com/borgbase/vorta/pull/877/files
>
> If possible, please let me know if this resolves the issue everywhere.
>

I can confirm that the fix included in 0.7.4 changes the trigger case
for me, and after about a dozen runs of manual testing I found that I
could reliably trigger this crash 4/4 times:

1. With a new user who has no Vorta config
2. Open Vorta
3. Do nothing
4. Quit from tray icon
5. Exit code 139 (SIGEGV)

Here is the backtrace:
Starting program: /usr/bin/python3 /usr/bin/vorta
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffef21a700 (LWP 37224)]
[New Thread 0x7fffee9f9700 (LWP 37225)]
[Detaching after fork from child process 37226]
[New Thread 0x7fffed05c700 (LWP 37227)]
[New Thread 0x7fffec85b700 (LWP 37228)]
[New Thread 0x7fffde80d700 (LWP 37229)]
[New Thread 0x7fffde00c700 (LWP 37230)]
[New Thread 0x7fffdd80b700 (LWP 37231)]
[New Thread 0x7fffdd00a700 (LWP 37232)]
[New Thread 0x7fffdc809700 (LWP 37233)]
[Detaching after fork from child process 37234]
[Thread 0x7fffdc809700 (LWP 37233) exited]
[Thread 0x7fffec85b700 (LWP 37228) exited]
[Thread 0x7fffed05c700 (LWP 37227) exited]

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007ffff1b3b7e7 in QWidget::~QWidget (this=0x13b6710, __in_chrg=<optimized 
out>) at kernel/qwidget.cpp:1478
1478    kernel/qwidget.cpp: No such file or directory.
#0  0x00007ffff1b3b7e7 in QWidget::~QWidget (this=0x13b6710, 
__in_chrg=<optimized out>) at kernel/qwidget.cpp:1478
#1  0x00007ffff1e85e2d in QSystemTrayIconSys::~QSystemTrayIconSys 
(this=0x13b6710, __in_chrg=<optimized out>)
    at util/qsystemtrayicon_x11.cpp:76
#2  QSystemTrayIconSys::~QSystemTrayIconSys (this=0x13b6710, 
__in_chrg=<optimized out>) at util/qsystemtrayicon_x11.cpp:76
#3  0x00007ffff1e85512 in QSystemTrayIconPrivate::destroyIcon (this=0x1372b90) 
at util/qsystemtrayicon_x11.cpp:278
#4  QSystemTrayIconPrivate::destroyIcon (this=0x1372b90) at 
util/qsystemtrayicon_x11.cpp:272
#5  QSystemTrayIconPrivate::remove_sys (this=0x1372b90) at 
util/qsystemtrayicon_x11.cpp:269
#6  0x00007ffff1e65dab in QSystemTrayIcon::~QSystemTrayIcon (this=0x12b0a50, 
__in_chrg=<optimized out>)
    at util/qsystemtrayicon.cpp:182
#7  0x00007ffff21afd19 in sipQSystemTrayIcon::~sipQSystemTrayIcon 
(this=0x12b0a50, __in_chrg=<optimized out>)
    at ./build-3.9/QtWidgets/sipQtWidgetspart1.cpp:52814
#8  0x00007ffff587fb7e in QObjectPrivate::deleteChildren (this=0x118ce40) at 
kernel/qobject.cpp:2104
#9  0x00007ffff588a754 in QObject::~QObject (this=<optimized out>, 
__in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#10 0x00007ffff239f5e9 in sipQApplication::~sipQApplication (this=0x124d3a0, 
__in_chrg=<optimized out>)
    at ./build-3.9/QtWidgets/sipQtWidgetspart9.cpp:17019
#11 0x00007ffff5d2d7ad in cleanup_on_exit () at 
../../qpy/QtCore/qpycore_init.cpp:44
#12 0x000000000052606e in cfunction_vectorcall_NOARGS (func=0x7ffff5e49630, 
args=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at ../Objects/methodobject.c:485
#13 0x0000000000631090 in atexit_callfuncs (module=<optimized out>) at 
../Modules/atexitmodule.c:93
#14 0x000000000061af1d in call_py_exitfuncs (tstate=0x962e80) at 
../Python/pylifecycle.c:2374
#15 0x000000000061a76d in Py_FinalizeEx () at ../Python/pylifecycle.c:1373
#16 0x000000000062c008 in Py_Exit (sts=0) at ../Python/pylifecycle.c:2433
#17 0x000000000061c43b in handle_system_exit () at ../Python/pythonrun.c:722
#18 0x000000000061c3a2 in _PyErr_PrintEx (set_sys_last_vars=1, tstate=0x962e80) 
at ../Python/pythonrun.c:732
#19 PyErr_PrintEx (set_sys_last_vars=1) at ../Python/pythonrun.c:827
#20 0x0000000000619845 in PyErr_Print () at ../Python/pythonrun.c:833
#21 pyrun_simple_file (flags=0x7fffffffe428, closeit=<optimized out>, 
filename=0x7ffff75f8030, fp=<optimized out>)
    at ../Python/pythonrun.c:455
#22 PyRun_SimpleFileExFlags (fp=<optimized out>, filename=<optimized out>, 
closeit=<optimized out>, flags=0x7fffffffe428)
    at ../Python/pythonrun.c:482
#23 0x000000000060d4e3 in pymain_run_file (cf=0x7fffffffe428, config=0x9617e0) 
at ../Modules/main.c:373
#24 pymain_run_python (exitcode=0x7fffffffe420) at ../Modules/main.c:598
#25 Py_RunMain () at ../Modules/main.c:677
#26 0x00000000005ea6e9 in Py_BytesMain (argc=<optimized out>, argv=<optimized 
out>) at ../Modules/main.c:731
#27 0x00007ffff7c44d0a in __libc_start_main () from 
/lib/x86_64-linux-gnu/libc.so.6
#28 0x00000000005ea5ea in _start () at ../Python/getplatform.c:11
Sandro, can you tell if this backtrace indicates that Debian's PyQt
and/or QtWidgets might have a problem? "kernel/qwidget.cpp: No such file
or directory"

Cheers,
Nicholas

Attachment: signature.asc
Description: PGP signature

Reply via email to