Bug 368207 - Crash when moving filter mask (GDB backtrace)
Summary: Crash when moving filter mask (GDB backtrace)
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Layer Stack (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-03 19:05 UTC by wolthera
Modified: 2016-09-27 10:27 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wolthera 2016-09-03 19:05:53 UTC
I was drawing, then moved my layerstack. Krita sefaulted.

I ran this on gdb, so I have a backtrace and some terminal spam:

canvas action "rotate_canvas_left" shortcut: "Ctrl+["
QAccessibleTree::indexFromLogical: invalid index:  16 0  for  KisFilterTree(0x1db7a750, name="filtersSelector")
Cannot creat accessible child interface for object:  KisFilterTree(0x1db7a750, name = "filtersSelector")  index:  17
QAccessibleTree::indexFromLogical: invalid index:  16 0  for  KisFilterTree(0x1db7a750, name="filtersSelector")
Cannot creat accessible child interface for object:  KisFilterTree(0x1db7a750, name = "filtersSelector")  index:  17
QAccessibleTree::indexFromLogical: invalid index:  16 0  for  KisFilterTree(0x1db7a750, name="filtersSelector")
Cannot creat accessible child interface for object:  KisFilterTree(0x1db7a750, name = "filtersSelector")  index:  17
QAccessibleTree::indexFromLogical: invalid index:  16 0  for  KisFilterTree(0x1db7a750, name="filtersSelector")
Cannot creat accessible child interface for object:  KisFilterTree(0x1db7a750, name = "filtersSelector")  index:  17
QAccessibleTree::indexFromLogical: invalid index:  16 0  for  KisFilterTree(0x1db7a750, name="filtersSelector")
Cannot creat accessible child interface for object:  KisFilterTree(0x1db7a750, name = "filtersSelector")  index:  17
QFSFileEngine::open: No file name specified

Thread 106 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff6bfff700 (LWP 5827)]
0x00007ffff5746b20 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
(gdb) thread apply all backtrace

Thread 109 (Thread 0x7fff6b7fe700 (LWP 5830)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff555c738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5558467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffeecee6fa in start_thread (arg=0x7fff6b7fe700)
    at pthread_create.c:333
#5  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 108 (Thread 0x7fff7b7b5700 (LWP 5829)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff555c738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5558467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff555bc89 in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffeecee6fa in start_thread (arg=0x7fff7b7b5700)
    at pthread_create.c:333
#5  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 107 (Thread 0x7fff6affd700 (LWP 5828)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff555c738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5558467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffeecee6fa in start_thread (arg=0x7fff6affd700)
    at pthread_create.c:333
#5  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 106 (Thread 0x7fff6bfff700 (LWP 5827)):
#0  0x00007ffff5746b20 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#1  0x00007ffff76fbad3 in BatchMoveUpdateData::addInitialUpdate (
    moveStruct=..., this=0x1d259090)
    at /home/krita/kde/src/krita/libs/ui/kis_node_juggler_compressed.cpp:198
#2  DuplicateLayers::populateChildCommands (this=<optimized out>)
    at /home/krita/kde/src/krita/libs/ui/kis_node_juggler_compressed.cpp:541
#3  0x00007ffff2f67a87 in KisCommandUtils::AggregateCommand::redo (
    this=0x1e2585a0)
    at /home/krita/kde/src/krita/libs/image/kis_command_utils.cpp:31
#4  0x00007ffff2f2d5aa in KisStrokeStrategyUndoCommandBased::doStrokeCallback (
    this=0x1a841290, data=<optimized out>)
    at /home/krita/kde/src/krita/libs/image/kis_stroke_strategy_undo_command_based.cpp:118
#5  0x00007ffff3076681 in KisStrokeJob::run (this=<optimized out>)
    at /home/krita/kde/build/libs/image/../../../src/krita/libs/image/kis_stroke_job.h:44
#6  KisUpdateJobItem::run (this=0xe7abf70)
    at /home/krita/kde/build/libs/image/../../../src/krita/libs/image/kis_update_job_item.h:66
#7  0x00007ffff555830d in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#8  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#9  0x00007fffeecee6fa in start_thread (arg=0x7fff6bfff700)
---Type <return> to continue, or q <return> to quit---
    at pthread_create.c:333
#10 0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 11 (Thread 0x7fffa3eb8700 (LWP 4565)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff555c7eb in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff6732aa2 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#3  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffeecee6fa in start_thread (arg=0x7fffa3eb8700)
    at pthread_create.c:333
#5  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 10 (Thread 0x7fffa8857700 (LWP 4564)):
#0  0x00007ffff4c1c8dd in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff5603f7d in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff555b138 in QThread::msleep(unsigned long) ()
---Type <return> to continue, or q <return> to quit---
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff2e9776a in KisTileDataSwapper::run (
    this=0x7ffff331e480 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>)
    at /home/krita/kde/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:97
#4  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#5  0x00007fffeecee6fa in start_thread (arg=0x7fffa8857700)
    at pthread_create.c:333
#6  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 9 (Thread 0x7fffbbfff700 (LWP 4563)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff555c7eb in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5555e8b in QSemaphore::acquire(int) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff2e7d93e in KisTileDataPooler::waitForWork (
    this=0x7ffff331e440 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>)
---Type <return> to continue, or q <return> to quit---
    at /home/krita/kde/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:165
#4  0x00007ffff2e7e0fa in KisTileDataPooler::run (
    this=0x7ffff331e440 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>)
    at /home/krita/kde/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:187
#5  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x00007fffeecee6fa in start_thread (arg=0x7fffbbfff700)
    at pthread_create.c:333
#7  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7fffd882a700 (LWP 4557)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee3c339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee3c34ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff576d4e7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007ffff571befa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#5  0x00007ffff555738c in QThread::exec() ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#6  0x00007fffeef19cd5 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5DBus.so.5
#7  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#8  0x00007fffeecee6fa in start_thread (arg=0x7fffd882a700)
    at pthread_create.c:333
#9  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fffd9245700 (LWP 4556)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee3c339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee3c3722 in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffde6a3916 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007fffee3e9bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffeecee6fa in start_thread (arg=0x7fffd9245700)
    at pthread_create.c:333
#6  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7fffd9a46700 (LWP 4555)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
---Type <return> to continue, or q <return> to quit---
#1  0x00007fffee3c339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee3c34ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffee3c34e9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffee3e9bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffeecee6fa in start_thread (arg=0x7fffd9a46700)
    at pthread_create.c:333
#6  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7fffda247700 (LWP 4554)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee3c339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee3c34ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffda24f28d in ?? ()
   from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007fffee3e9bc5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffeecee6fa in start_thread (arg=0x7fffda247700)
    at pthread_create.c:333
#6  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

---Type <return> to continue, or q <return> to quit---
Thread 2 (Thread 0x7fffe4b1b700 (LWP 4553)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff357ac62 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007ffff357c8d7 in xcb_wait_for_event ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe59cadc9 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#4  0x00007ffff555bc89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#5  0x00007fffeecee6fa in start_thread (arg=0x7fffe4b1b700)
    at pthread_create.c:333
#6  0x00007ffff4c57b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7ffff7f0f8c0 (LWP 4549)):
#0  0x00007ffff4c4be8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee3c339c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee3c34ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff576d4e7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007ffff571befa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#5  0x00007ffff5723d9d in QCoreApplication::exec() ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x0000000000404c51 in main (argc=1, argv=<optimized out>)
    at /home/krita/kde/src/krita/krita/main.cc:231
(gdb)

Reproducible: Didn't try
Comment 1 Halla Rempt 2016-09-08 09:05:22 UTC
Git commit 9a1d90c007c12a8be077b45081b9bcb58d756a46 by Boudewijn Rempt.
Committed on 08/09/2016 at 09:04.
Pushed by rempt into branch 'master'.

By wrapping in a QPointer we can check whether the QObject
based KisNodeJugglerCompressed has been deleted. If shouldn't
happen, but obviously does.

M  +4    -2    libs/ui/kis_node_juggler_compressed.cpp

http://commits.kde.org/krita/9a1d90c007c12a8be077b45081b9bcb58d756a46
Comment 2 Halla Rempt 2016-09-27 10:27:33 UTC
Git commit 4914ad4d2252ef0b96a60591d95487f68a9bd7ee by Boudewijn Rempt.
Committed on 27/09/2016 at 10:04.
Pushed by rempt into branch 'krita/3.0.1'.

By wrapping in a QPointer we can check whether the QObject
based KisNodeJugglerCompressed has been deleted. If shouldn't
happen, but obviously does.

M  +4    -2    libs/ui/kis_node_juggler_compressed.cpp

http://commits.kde.org/krita/4914ad4d2252ef0b96a60591d95487f68a9bd7ee