Summary: | Crash on touching graphic tablet pen on canvas | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Raghavendra kamath <raghu> |
Component: | General | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | DrewM100, e.gwen.buchanan, essaoudi.ouissale, halla, IanMP.00, jindelsan, johnny.strom, jpritikin, ktpr, matt.scheirer, null, rdieter, smithtrombone, victoryroseart |
Priority: | NOR | Keywords: | drkonqi |
Version: | 4.2.3 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/krita/6a8954563586feb7e6324f876c956a054d8afe6b | Version Fixed In: | |
Attachments: | gdb of 4.1.6 and 5.12.0 with symbols |
Description
Raghavendra kamath
2018-12-11 05:58:37 UTC
On further inspection, this only happens when I use pen and not with mouse If you're still on Arch Linux, try to rebuild Krita. The crash goes through the lut docker, so it sounds similar to the problem someone on irc had, last night, where things got broken because libopencolorio was removed somehow. I don't think this is either build or packaging related. It seems to be a Qt regression in 5.12. Testing with the latest Krita or QtBase causes double frees in TabletEvent and I can sometimes get a null pointer on destruct. Currently building 5.12.0 + 4.1.6 and dev + master to produce some gdb traces with symbols. Took forever to hack the outdated AUR qt-base-git package into working... Created attachment 116868 [details] gdb of 4.1.6 and 5.12.0 with symbols I'm at a loss. Bisecting this trace led me to https://github.com/qt/qtbase/commit/d2e0e416d4444ccf3c208d6770e32ff0fb04b543 as the culprit. But it was merged into 5.11.3 and I never ran into this bug before 5.12. At the same time I can generate a myriad of null pointers / double frees poking the canvas and it all comes back to that destructor. Looking back at it there were 6 revisions of the 5.11 package in Arch but Qt 5.11 only had two point releases. That would explain why this is new! I made an upstream Qt bug for this here: https://bugreports.qt.io/browse/QTBUG-72488 You can probably close this - its a Qt bug, not a Krita one. For any other Arch users finding this, revert d2e0e416d4444ccf3c208d6770e32ff0fb04b543 in qt5-base 5.12.0 or just go back to 5.11 until its fixed. Thanks for making the bug report! Oh! It might be interesting to build Krita with the option USE_QT_XCB=TRUE to disable our forked xcb handling. That will use Qt's xcb (which will cause bugs, like the cursor hanging as in https://bugs.kde.org/show_bug.cgi?id=390642) Looks like the problem is that QEvent has a pointer member variable but no copy constructor. The base class qcoreevent has a copy constructor. Krita copies tablet events to put into a motion compressor thing. The pointer member doesn't get copied, there are two tabletevents that own it, both try to delete it. Git commit b937eccca0200e32ed5bda7204e4bbf826f53372 by Boudewijn Rempt. Committed on 12/12/2018 at 12:21. Pushed by rempt into branch 'master'. Work around QTBUG-72488 Qt 5.12 now deletes a void pointer member variable of QTabletEvent. QTableEvent doesn't implement a copy constructor for QTabletEvent, but Krita does copy events when compressing move events. Both the original and the copy try to delete the pointer, and poof. This is strictly a workaround, only valid for Qt 5.12 and should be removed if this bug is fixed in Qt 5.12.1 or later. M +5 -0 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/b937eccca0200e32ed5bda7204e4bbf826f53372 Git commit b937eccca0200e32ed5bda7204e4bbf826f53372 by Boudewijn Rempt. Committed on 12/12/2018 at 12:21. Pushed by rempt into branch 'master'. Work around QTBUG-72488 Qt 5.12 now deletes a void pointer member variable of QTabletEvent. QTableEvent doesn't implement a copy constructor for QTabletEvent, but Krita does copy events when compressing move events. Both the original and the copy try to delete the pointer, and poof. This is strictly a workaround, only valid for Qt 5.12 and should be removed if this bug is fixed in Qt 5.12.1 or later. M +5 -0 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/b937eccca0200e32ed5bda7204e4bbf826f53372 Git commit 6a8954563586feb7e6324f876c956a054d8afe6b by Boudewijn Rempt. Committed on 12/12/2018 at 12:22. Pushed by rempt into branch 'krita/4.1'. Work around QTBUG-72488 Qt 5.12 now deletes a void pointer member variable of QTabletEvent. QTableEvent doesn't implement a copy constructor for QTabletEvent, but Krita does copy events when compressing move events. Both the original and the copy try to delete the pointer, and poof. This is strictly a workaround, only valid for Qt 5.12 and should be removed if this bug is fixed in Qt 5.12.1 or later. M +5 -0 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/6a8954563586feb7e6324f876c956a054d8afe6b Git commit 6a8954563586feb7e6324f876c956a054d8afe6b by Boudewijn Rempt. Committed on 12/12/2018 at 12:22. Pushed by rempt into branch 'krita/4.1'. Work around QTBUG-72488 Qt 5.12 now deletes a void pointer member variable of QTabletEvent. QTableEvent doesn't implement a copy constructor for QTabletEvent, but Krita does copy events when compressing move events. Both the original and the copy try to delete the pointer, and poof. This is strictly a workaround, only valid for Qt 5.12 and should be removed if this bug is fixed in Qt 5.12.1 or later. M +5 -0 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/6a8954563586feb7e6324f876c956a054d8afe6b *** Bug 402054 has been marked as a duplicate of this bug. *** Git commit 3829dcea6d9d638582a39df349a407f90ce40d66 by Boudewijn Rempt. Committed on 16/12/2018 at 12:39. Pushed by rempt into branch 'master'. Qt-5.11.3 also has bug QTBUG-72488 Related: bug 402188, bug 402169, bug 402155 M +4 -4 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/3829dcea6d9d638582a39df349a407f90ce40d66 Git commit 6b7ab506305126c4f594874555010b0781f467a4 by Boudewijn Rempt. Committed on 16/12/2018 at 12:42. Pushed by rempt into branch 'krita/4.1'. Qt-5.11.3 also has bug QTBUG-72488 Related: bug 402188, bug 402169, bug 402155 M +4 -4 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/6b7ab506305126c4f594874555010b0781f467a4 Git commit 6b7ab506305126c4f594874555010b0781f467a4 by Boudewijn Rempt. Committed on 16/12/2018 at 12:42. Pushed by rempt into branch 'krita/4.1'. Qt-5.11.3 also has bug QTBUG-72488 Related: bug 402188, bug 402169, bug 402155 M +4 -4 libs/ui/input/kis_input_manager.cpp https://commits.kde.org/krita/6b7ab506305126c4f594874555010b0781f467a4 *** Bug 402844 has been marked as a duplicate of this bug. *** *** Bug 403225 has been marked as a duplicate of this bug. *** *** Bug 403337 has been marked as a duplicate of this bug. *** *** Bug 403672 has been marked as a duplicate of this bug. *** *** Bug 404379 has been marked as a duplicate of this bug. *** *** Bug 404809 has been marked as a duplicate of this bug. *** *** Bug 405125 has been marked as a duplicate of this bug. *** *** Bug 406747 has been marked as a duplicate of this bug. *** *** Bug 407408 has been marked as a duplicate of this bug. *** |