Created attachment 853422 [details, diff] patch to delete spell cheker before chat window net-im/qtox-1.17.6-r1 segmentation fault at exit if spellcheck is enabled. Stack trace of thread 5737: #0 0x00007ffff4ea6f08 _ZN7QObject17removeEventFilterEPS_ (libQt5Core.so.5 + 0x2a6f08) #1 0x00007ffff6a93ee6 _ZN6Sonnet26SpellCheckDecoratorPrivateD2Ev (libKF5SonnetUi.so.5 + 0x1dee6) #2 0x00007ffff6a9400d _ZNKSt14default_deleteIN6Sonnet26SpellCheckDecoratorPrivateEEclEPS1_ (libKF5SonnetUi.so.5 + 0x1e00d) #3 0x00007ffff6a9402f _ZNSt10unique_ptrIN6Sonnet26SpellCheckDecoratorPrivateESt14default_deleteIS1_EED2Ev (libKF5SonnetUi.so.5 + 0x1e02f) #4 0x00007ffff6a936df _ZN6Sonnet19SpellCheckDecoratorD2Ev (libKF5SonnetUi.so.5 + 0x1d6df) #5 0x00007ffff6a936f3 _ZN6Sonnet19SpellCheckDecoratorD0Ev (libKF5SonnetUi.so.5 + 0x1d6f3) #6 0x00007ffff4ea08a2 _ZN14QObjectPrivate14deleteChildrenEv (libQt5Core.so.5 + 0x2a08a2) #7 0x00007ffff5ba0626 _ZN7QWidgetD2Ev (libQt5Widgets.so.5 + 0x1a0626) #8 0x000055555575917d _ZN12ChatTextEditD0Ev (qtox + 0x20517d) #9 0x00007ffff4ea08a2 _ZN14QObjectPrivate14deleteChildrenEv (libQt5Core.so.5 + 0x2a08a2) #10 0x00007ffff5ba0626 _ZN7QWidgetD2Ev (libQt5Widgets.so.5 + 0x1a0626) #11 0x00007ffff5ba0969 _ZN7QWidgetD0Ev (libQt5Widgets.so.5 + 0x1a0969) #12 0x00007ffff4ea08a2 _ZN14QObjectPrivate14deleteChildrenEv (libQt5Core.so.5 + 0x2a08a2) #13 0x00007ffff5ba0626 _ZN7QWidgetD2Ev (libQt5Widgets.so.5 + 0x1a0626) #14 0x00007ffff5d12d59 _ZN9QSplitterD0Ev (libQt5Widgets.so.5 + 0x312d59) #15 0x00007ffff4ea08a2 _ZN14QObjectPrivate14deleteChildrenEv (libQt5Core.so.5 + 0x2a08a2) #16 0x00007ffff5ba0626 _ZN7QWidgetD2Ev (libQt5Widgets.so.5 + 0x1a0626) #17 0x00005555556f726d _ZN8ChatFormD0Ev (qtox + 0x1a326d) #18 0x000055555576bad5 _ZN6Widget12removeFriendEP6Friendb (qtox + 0x217ad5) #19 0x000055555577330d _ZN6WidgetD1Ev (qtox + 0x21f30d) #20 0x0000555555773b1d _ZN6WidgetD0Ev (qtox + 0x21fb1d) #21 0x0000555555693982 _ZN5NexusD1Ev (qtox + 0x13f982) #22 0x0000555555693a5d _ZN5Nexus15destroyInstanceEv (qtox + 0x13fa5d) #23 0x00005555556124de _Z7cleanupv (qtox + 0xbe4de) #24 0x00007ffff4eaac95 n/a (libQt5Core.so.5 + 0x2aac95) #25 0x00007ffff4e7700a _ZN16QCoreApplication11aboutToQuitENS_14QPrivateSignalE (libQt5Core.so.5 + 0x27700a) #26 0x00007ffff4e7b5a9 _ZN23QCoreApplicationPrivate11execCleanupEv (libQt5Core.so.5 + 0x27b5a9) #27 0x00007ffff4e7eaf4 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x27eaf4) #28 0x000055555560e3a9 main (qtox + 0xba3a9) #29 0x00007ffff465434a __libc_start_call_main (libc.so.6 + 0x2334a) #30 0x00007ffff46543fc __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x233fc) #31 0x0000555555611e01 _start (qtox + 0xbde01) Problem caused by incorrect destruction order for child of ChatForm widget. Spell checker tried detaching event filter from deleted viewport widget.
Hmmm, so far I can not re-produce the issue here with up-to-date unstable packages. Does it require some specific steps, and does it happen always even with a new, clean and fresh profile?
(In reply to Chiitoo from comment #1) > Does it require some specific steps, and does it happen always even with a > new, clean and fresh profile? Yep. 1. Build qtox with USE=spellcheck 2. You have to enable spell checking in Settings/General 3. Restart qtox, because checker settings apply after restart. 4. Open chat form with text widget and verify spellchecker is working. 5. Quit from application. Default behavior is closing to tray. You should quit.
Created attachment 854336 [details] segfault backtrace
Ah, yes, I see it now. I only tried actually using it, and left it running, heh. I'll try to look into more when I have more time, too, but thanks so far. Unfortunately, since upstream is "gone" at this time, meaning patches will not be going upstream, we're probably not going to carry it in ::gentoo for long either... but perhaps, hopefully, the maintainers will return to it before that.
Created attachment 854338 [details] emerge --info qtox
Created attachment 854340 [details] valgrind report use after free error
There's a fork brewing at https://github.com/TokTok/qTox/ by people also involved with 'net-libs/tox', and this issue has been fixed there in a similar fashion to the suggested patch here. Will close this with the incoming release when it happens. Thank you for the report!
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db08cc147b7ce4f6729e49428b815b03dd688de8 commit db08cc147b7ce4f6729e49428b815b03dd688de8 Author: Jimi Huotari <chiitoo@gentoo.org> AuthorDate: 2024-11-23 22:03:33 +0000 Commit: Jimi Huotari <chiitoo@gentoo.org> CommitDate: 2024-12-07 15:51:36 +0000 net-im/qtox: build 9999 with qt 6 and switch to a new upstream Also remove the now unused toxest-related dependencies, and update CMake switches. As the original project repository [1] is archived, this switches the upstream to a fork [2] by people working on 'net-libs/tox' as well. Segfault on exit when spellcheck is enabled is fixed here too. 1. https://github.com/qTox/qTox/ 2. https://github.com/TokTok/qTox/ Bug: https://bugs.gentoo.org/895634 Signed-off-by: Jimi Huotari <chiitoo@gentoo.org> net-im/qtox/qtox-9999.ebuild | 58 +++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 36 deletions(-)
Fixed in version 9999