$ ps -efl | head -n 1; ps -efl | grep After | grep -v grep
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
0 S bmason 11152 27772 99 80 0 - 409626 futex_ 22:44 ? 00:20:43 ./AfterShotPro
Looking at /proc/11152/wchan shows that ASP in "futex_wait_queue_me".
If I run a pstack on the ASP PID, I get:
- Code: Select all
$ pstack 11152
Thread 7 (Thread 0xa1e8bb40 (LWP 11156)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x4314485c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xf4d50802 in QWaitCondition::wait(QMutex*, unsigned long) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0xf5670afa in QFileInfoGatherer::run() () from /opt/AfterShotPro/lib/libQtGui.so.4
#4 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#5 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#6 0x4307da2e in clone () from /lib/libc.so.6
Thread 6 (Thread 0xa09e2b40 (LWP 11157)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x430762e1 in select () from /lib/libc.so.6
#2 0xf4e82040 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0xf4e85359 in QEventDispatcherUNIX::select(int, fd_set*, fd_set*, fd_set*, timeval*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#4 0xf4e85be7 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#5 0xf4e86b71 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#6 0xf4e544ca in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#7 0xf4e54952 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#8 0xf4d4ca5a in QThread::exec() () from /opt/AfterShotPro/lib/libQtCore.so.4
#9 0xf4e3324b in QInotifyFileSystemWatcherEngine::run() () from /opt/AfterShotPro/lib/libQtCore.so.4
#10 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#11 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#12 0x4307da2e in clone () from /lib/libc.so.6
Thread 5 (Thread 0x9e3dbb40 (LWP 11160)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x4314485c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xf4d50802 in QWaitCondition::wait(QMutex*, unsigned long) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0x08490368 in TMThread::run() ()
#4 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#5 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#6 0x4307da2e in clone () from /lib/libc.so.6
Thread 4 (Thread 0x9dadab40 (LWP 11161)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x4314485c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xf4d50802 in QWaitCondition::wait(QMutex*, unsigned long) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0x08490368 in TMThread::run() ()
#4 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#5 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#6 0x4307da2e in clone () from /lib/libc.so.6
Thread 3 (Thread 0x9cbb9b40 (LWP 11162)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x4314485c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xf4d4ee92 in QMutexPrivate::wait(int) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0xf4d4a3fd in QMutex::lock() () from /opt/AfterShotPro/lib/libQtCore.so.4
#4 0x0820bf94 in VersionAsset::singleRefChild(Asset*) ()
#5 0x080f5175 in Asset::removeReference() ()
#6 0x08140278 in AnonAllocator::doDelayedPurge() ()
#7 0x0815d770 in CachingAllocator::touchAsset(Asset*) ()
#8 0x080f3c68 in Asset::touch() ()
#9 0x0820deee in VersionAsset::tileStack(int, bool) ()
#10 0x0820e539 in VersionAsset::tileStack(int) ()
#11 0x083c10e0 in VersionStackSrcFilter::size(ProcessingSettings const&, PipeSettings const&, QSize const&) ()
#12 0x083ceef4 in TileStack::versionSettingsChanged(int) ()
#13 0x083cfc8c in TileStack::TileStack(ImagePipeline&, ExtraPipeSettings*, AssetPtr<VersionAsset>, int, bool) ()
#14 0x08229179 in VersionWriterAsset::run() ()
#15 0x0849026a in TMThread::run() ()
#16 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#17 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#18 0x4307da2e in clone () from /lib/libc.so.6
Thread 2 (Thread 0x9f612b40 (LWP 11169)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x430762e1 in select () from /lib/libc.so.6
#2 0xf4e82040 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0xf4e85359 in QEventDispatcherUNIX::select(int, fd_set*, fd_set*, fd_set*, timeval*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#4 0xf4e85be7 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#5 0xf4e86b71 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#6 0xf4e544ca in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#7 0xf4e54952 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#8 0xf4d4ca5a in QThread::exec() () from /opt/AfterShotPro/lib/libQtCore.so.4
#9 0xf4e3324b in QInotifyFileSystemWatcherEngine::run() () from /opt/AfterShotPro/lib/libQtCore.so.4
#10 0xf4d50052 in QThreadPrivate::start(void*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#11 0x43140cd3 in start_thread () from /lib/libpthread.so.0
#12 0x4307da2e in clone () from /lib/libc.so.6
Thread 1 (Thread 0xf4cde700 (LWP 11152)):
#0 0xf77de430 in __kernel_vsyscall ()
#1 0x4314485c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0xf4d50802 in QWaitCondition::wait(QMutex*, unsigned long) () from /opt/AfterShotPro/lib/libQtCore.so.4
#3 0x08490b66 in TMMangler::block(TMWaitList*) ()
#4 0x080f4744 in Asset::waitBlockPrivate(AutoUser&, BMutexLocker*) ()
#5 0x0814d6d1 in GuiRequestor::blockGui(BaseAssetPtr const&, AutoUser&, BMutexLocker*) ()
#6 0x080f482b in Asset::waitBlock(AutoUser&, BMutexLocker*) ()
#7 0x083dfc51 in PreScalingFilter::validateCameraReader(PipeSettings const&) ()
#8 0x083d3194 in UncompressedRawDataFilter::size(ProcessingSettings const&, PipeSettings const&, QSize const&) ()
#9 0x083ceef4 in TileStack::versionSettingsChanged(int) ()
#10 0x083d072d in TileStack::TileStack(AssetPtr<VersionAsset>, int, bool) ()
#11 0x0820df8b in VersionAsset::tileStack(int, bool) ()
#12 0x0820e539 in VersionAsset::tileStack(int) ()
#13 0x0820e5da in VersionAsset::cropRect() ()
#14 0x0892e477 in ImageItem::setImage(AssetPtr<VersionAsset> const&) ()
#15 0x08917b0e in MultiImageView::addImage(AssetPtr<VersionAsset> const&) ()
#16 0x08918e1c in MultiImageView::updateItems(bool) ()
#17 0x08ae87d1 in MultiImageView::qt_metacall(QMetaObject::Call, int, void**) ()
#18 0xf4e5b875 in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /opt/AfterShotPro/lib/libQtCore.so.4
#19 0xf4e6e3d3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /opt/AfterShotPro/lib/libQtCore.so.4
#20 0x08aeaf76 in SelectionList::selectionChanged() ()
#21 0x0899d72f in SelectionList::endChange() ()
#22 0x082cada4 in SelectionCommand::redo() ()
#23 0x08358aa4 in BUndoStack::push(BUndoCommand*) ()
#24 0x08942835 in ThumbView::activateThumb(HID, QFlags<Qt::KeyboardModifier>) ()
#25 0x0894346f in ThumbView::keyPressEvent(QKeyEvent*) ()
#26 0x0893d33d in ThumbView::selectNext() ()
#27 0x08ae9598 in ThumbView::qt_metacall(QMetaObject::Call, int, void**) ()
#28 0xf4e5b875 in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /opt/AfterShotPro/lib/libQtCore.so.4
#29 0xf4e6e3d3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /opt/AfterShotPro/lib/libQtCore.so.4
#30 0xf50d2343 in QAction::activated(int) () from /opt/AfterShotPro/lib/libQtGui.so.4
#31 0xf50d3d58 in QAction::activate(QAction::ActionEvent) () from /opt/AfterShotPro/lib/libQtGui.so.4
#32 0xf50d5feb in QAction::event(QEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#33 0xf50da14c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#34 0xf50e0942 in QApplication::notify(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#35 0xf4e55a9b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#36 0xf511b698 in QShortcutMap::dispatchEvent(QKeyEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#37 0xf511d4ef in QShortcutMap::tryShortcutEvent(QObject*, QKeyEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#38 0xf50e2ab2 in QApplication::notify(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#39 0xf4e55a9b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtCore.so.4
#40 0xf50d9f9e in qt_sendSpontaneousEvent(QObject*, QEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#41 0xf5193760 in QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#42 0xf51958e4 in QKeyMapperPrivate::translateKeyEvent(QWidget*, _XEvent const*, bool) () from /opt/AfterShotPro/lib/libQtGui.so.4
#43 0xf516b2e9 in QApplication::x11ProcessEvent(_XEvent*) () from /opt/AfterShotPro/lib/libQtGui.so.4
#44 0xf5198bdb in QEventDispatcherX11::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtGui.so.4
#45 0xf4e544ca in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#46 0xf4e54952 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/AfterShotPro/lib/libQtCore.so.4
#47 0xf4e58a69 in QCoreApplication::exec() () from /opt/AfterShotPro/lib/libQtCore.so.4
#48 0xf50d9277 in QApplication::exec() () from /opt/AfterShotPro/lib/libQtGui.so.4
#49 0x08ab6f65 in ourmain(int, char**) ()
#50 0x08ab8222 in main ()
I'm running ASP 1.0.1.10 on 64-bit Fedora 16 (glibc-2.14.90-24.fc16.6).
Any ideas on what could be going wrong and how to avoid this (or fix it). It's fairly reproduceable and I'm willing to do whatever debugging is required.
Thanks.
~ Bryan