It may be related just to zones, like picture and fill zones. The menu in the right pages sidebar to insert before/after seems to work fine.
Right-clicking (or control-clicking) brings up the menu, but as soon as you select an item and the menu goes away the program freezes for a bit then crashes.
I guess I can start digging in the zones stuff and menu handling in there, comparing with how things are handled in the page sidebar and see if there is some missing Mutex or other locking missing that causes the crash (just a wild guess).
Puzzling on exactly where the problem is because it's in the Qt event stuff, the crashing thread isn't even referencing relevant scantailor code.
Here are two crash dumps, and a gdb backtrace, but they all show the same unhelpful information, at least to me... Looks like it is falling apart when invoking the bound action for the selected menu item. But why this happens on only osx and only for the zone menus and not the others, I have yet to uncover.
Code: Select all
Process: ScanTailor [3142]
Path: /Applications/ScanTailor.app/Contents/MacOS/ScanTailor
Identifier: net.sourceforge.Scantailor
Version: ScanTailor-0.9.9.2 (???)
Code Type: X86 (Native)
Parent Process: launchd [468]
Date/Time: 2010-10-26 10:53:55.864 -0500
OS Version: Mac OS X 10.6.5 (10H563)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000000c
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 QtGui 0x003e5b08 non-virtual thunk to QWidget::devType() const + 936
1 QtGui 0x0082725a QMenu::sizeHint() const + 634
2 QtGui 0x00828b63 QMenu::event(QEvent*) + 979
3 QtGui 0x0082a688 QMenu::wheelEvent(QWheelEvent*) + 1464
4 QtGui 0x0082aa09 QMenu::wheelEvent(QWheelEvent*) + 2361
5 QtGui 0x0082d22e QMenu::mouseReleaseEvent(QMouseEvent*) + 254
6 QtGui 0x003dfbd3 QWidget::event(QEvent*) + 4323
7 QtGui 0x008287ef QMenu::event(QEvent*) + 95
8 QtGui 0x003869ff QApplicationPrivate::notify_helper(QObject*, QEvent*) + 175
9 QtGui 0x003874f9 QApplication::notify(QObject*, QEvent*) + 2681
10 QtCore 0x00f054f2 QCoreApplication::notifyInternal(QObject*, QEvent*) + 98
11 QtGui 0x00318358 QApplicationPrivate::globalEventProcessor(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 7944
12 com.apple.HIToolbox 0x90d32eef DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1567
13 com.apple.HIToolbox 0x90d321b6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411
14 com.apple.HIToolbox 0x90d5497b SendEventToEventTarget + 52
15 com.apple.HIToolbox 0x90d66497 ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 1257
16 com.apple.HIToolbox 0x90d33340 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 2672
17 com.apple.HIToolbox 0x90d321b6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411
18 com.apple.HIToolbox 0x90d5497b SendEventToEventTarget + 52
19 QtGui 0x0032fca4 non-virtual thunk to QDesktopWidget::~QDesktopWidget() + 7668
20 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
21 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
22 QtCore 0x00fe857e QCoreApplication::exec() + 174
23 net.sourceforge.Scantailor 0x000052ad main + 1165
24 net.sourceforge.Scantailor 0x00004be6 _start + 216
25 net.sourceforge.Scantailor 0x00004b0d start + 41
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x9748c982 kevent + 10
1 libSystem.B.dylib 0x9748d09c _dispatch_mgr_invoke + 215
2 libSystem.B.dylib 0x9748c559 _dispatch_queue_invoke + 163
3 libSystem.B.dylib 0x9748c2fe _dispatch_worker_thread2 + 240
4 libSystem.B.dylib 0x9748bd81 _pthread_wqthread + 390
5 libSystem.B.dylib 0x9748bbc6 start_wqthread + 30
Thread 2:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 net.sourceforge.Scantailor 0x00069402 WorkerThread::Impl::run() + 34
9 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
10 libSystem.B.dylib 0x9749385d _pthread_start + 345
11 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 3:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
9 libSystem.B.dylib 0x9749385d _pthread_start + 345
10 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 4:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
9 libSystem.B.dylib 0x9749385d _pthread_start + 345
10 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x01350598 ebx: 0x00828b35 ecx: 0x000b6740 edx: 0x00000000
edi: 0xbfffe640 esi: 0x00000000 ebp: 0xbfffe5e8 esp: 0xbfffe5cc
ss: 0x0000001f efl: 0x00010246 eip: 0x003e5b08 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x0000000c
Code: Select all
Process: ScanTailor [3174]
Path: /Applications/ScanTailor.app/Contents/MacOS/ScanTailor
Identifier: net.sourceforge.Scantailor
Version: ScanTailor-0.9.9.2 (???)
Code Type: X86 (Native)
Parent Process: launchd [468]
Date/Time: 2010-10-26 10:55:53.526 -0500
OS Version: Mac OS X 10.6.5 (10H563)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000636f6f77
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 QtCore 0x00f07f26 QMetaObject::cast(QObject*) const + 22
1 QtGui 0x0082a9f0 QMenu::wheelEvent(QWheelEvent*) + 2336
2 QtGui 0x0082d22e QMenu::mouseReleaseEvent(QMouseEvent*) + 254
3 QtGui 0x003dfbd3 QWidget::event(QEvent*) + 4323
4 QtGui 0x008287ef QMenu::event(QEvent*) + 95
5 QtGui 0x003869ff QApplicationPrivate::notify_helper(QObject*, QEvent*) + 175
6 QtGui 0x003874f9 QApplication::notify(QObject*, QEvent*) + 2681
7 QtCore 0x00f054f2 QCoreApplication::notifyInternal(QObject*, QEvent*) + 98
8 QtGui 0x00318358 QApplicationPrivate::globalEventProcessor(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 7944
9 com.apple.HIToolbox 0x90d32eef DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1567
10 com.apple.HIToolbox 0x90d321b6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411
11 com.apple.HIToolbox 0x90d5497b SendEventToEventTarget + 52
12 com.apple.HIToolbox 0x90d66497 ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 1257
13 com.apple.HIToolbox 0x90d33340 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 2672
14 com.apple.HIToolbox 0x90d321b6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411
15 com.apple.HIToolbox 0x90d5497b SendEventToEventTarget + 52
16 QtGui 0x0032fca4 non-virtual thunk to QDesktopWidget::~QDesktopWidget() + 7668
17 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
18 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
19 QtCore 0x00fe857e QCoreApplication::exec() + 174
20 net.sourceforge.Scantailor 0x000052ad main + 1165
21 net.sourceforge.Scantailor 0x00004be6 _start + 216
22 net.sourceforge.Scantailor 0x00004b0d start + 41
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x9748c982 kevent + 10
1 libSystem.B.dylib 0x9748d09c _dispatch_mgr_invoke + 215
2 libSystem.B.dylib 0x9748c559 _dispatch_queue_invoke + 163
3 libSystem.B.dylib 0x9748c2fe _dispatch_worker_thread2 + 240
4 libSystem.B.dylib 0x9748bd81 _pthread_wqthread + 390
5 libSystem.B.dylib 0x9748bbc6 start_wqthread + 30
Thread 2:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 net.sourceforge.Scantailor 0x00069402 WorkerThread::Impl::run() + 34
9 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
10 libSystem.B.dylib 0x9749385d _pthread_start + 345
11 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 3:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
9 libSystem.B.dylib 0x9749385d _pthread_start + 345
10 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 4:
0 libSystem.B.dylib 0x974a1ad2 select$DARWIN_EXTSN$NOCANCEL + 10
1 libSystem.B.dylib 0x97539fd7 select + 92
2 QtCore 0x01009958 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 168
3 QtCore 0x0100d119 QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 441
4 QtCore 0x0100e89c QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 156
5 QtCore 0x00fe6041 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
6 QtCore 0x00fe627d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 189
7 QtCore 0x00f27dbd QThread::exec() + 157
8 QtCore 0x00f28776 QThread::setTerminationEnabled(bool) + 278
9 libSystem.B.dylib 0x9749385d _pthread_start + 345
10 libSystem.B.dylib 0x974936e2 thread_start + 34
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x636f6f77 ebx: 0x0082a78b ecx: 0x00c3976c edx: 0x00000000
edi: 0x00c3976c esi: 0x636f6f77 ebp: 0xbfffe6f8 esp: 0xbfffe6e0
ss: 0x0000001f efl: 0x00010206 eip: 0x00f07f26 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x636f6f77
Code: Select all
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x65cfe55a
0x015700e8 in vtable for QDomNodePrivate ()
(gdb) bt
#0 0x015700e8 in vtable for QDomNodePrivate ()
#1 0x01cb0000 in ?? ()
#2 0x00e2e9f0 in QMenuPrivate::activateAction ()
#3 0x00e3122e in QMenu::mouseReleaseEvent ()
#4 0x009e3bd3 in QWidget::event ()
#5 0x00e2c7ef in QMenu::event ()
#6 0x0098a9ff in QApplicationPrivate::notify_helper ()
#7 0x0098b4f9 in QApplication::notify ()
#8 0x015dc4f2 in QCoreApplication::notifyInternal ()
#9 0x0091c358 in QApplicationPrivate::globalEventProcessor ()
#10 0x90d32eef in DispatchEventToHandlers ()
#11 0x90d321b6 in SendEventToEventTargetInternal ()
#12 0x90d5497b in SendEventToEventTarget ()
#13 0x90d66497 in ToolboxEventDispatcherHandler ()
#14 0x90d33340 in DispatchEventToHandlers ()
#15 0x90d321b6 in SendEventToEventTargetInternal ()
#16 0x90d5497b in SendEventToEventTarget ()
#17 0x00933ca4 in QEventDispatcherMac::processEvents ()
#18 0x016bd041 in QEventLoop::processEvents ()
#19 0x016bd27d in QEventLoop::exec ()
#20 0x016bf57e in QCoreApplication::exec ()
#21 0x000075e1 in main (argc=1, argv=0xbffff838) at /usr/local/src/scantailor/scantailor-9224b0d/main.cpp:184