[Digikam-devel] Crash when using CIMG image resizing in Digikam SVN

Gilles Caulier caulier.gilles at gmail.com
Tue Mar 27 21:28:29 BST 2007


yes, it crash here too sometimes. Look like the backtrace is different now.
The cras appear inside CImg::greystoration.

I suspect a problem in the thread management of algorithm witch not stop
properlly the threads at each iterations (resize use 3 iterations , this is
why it crash at 33%).

I don't know why the code is more stable here when i use CImg::wait()
instead QThread::usleep() in my interface. I'm in contact with David to
investiguate. Wait and seen feedback from him.

Gilles

2007/3/27, Thorsten Schnebeck <thorsten.schnebeck at gmx.net>:
>
> Am Dienstag 27 März 2007 schrieben Sie:
> > Thorsten,
> >
> > I have found the problem. The crash is releavnt of CImg::wait(...) call
> in
> > my Greycstoration interface.
> >
> > I have removed these call and the valgrind report disapear.
> >
> > Code is patched to svn. Please checkout, try again, and give me a
> report.
> > Thanks in advance.
> >
> > Gilles
>
> Hi Gilles,
>
> sorry, but I still have a crash. I tried to collect all useful
> informations.
>
> Bye
>
>   Thorsten
>
> digikam: GreycstorationIface::Resize: new size: (3764, 2509)
> [New Thread -1247376496 (LWP 7635)]
> digikam: GreycstorationIface::Initialization...
> digikam: GreycstorationIface::Process Computation...
> digikam: Resizing image: size 3072 x 2048, value range [0 , 255]
> [New Thread -1360770160 (LWP 7654)]
> [New Thread -1369162864 (LWP 7655)]
> [Thread -1369162864 (LWP 7655) exited]
> [New Thread -1584268400 (LWP 7789)]
> [New Thread -1744942192 (LWP 7790)]
> [Thread -1360770160 (LWP 7654) exited]
> [Thread -1744942192 (LWP 7790) exited]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1584268400 (LWP 7789)]
> 0xb7e9eccb in cimg_library::CImg<float>::greycstoration_thread
> (arg=0x8c7a1dc)
> at greycstoration.h:144
> 144               for (unsigned int x=0; x<source.width && !*(
> p.stop_request);
> x+=p.tile)
>
> (gdb) info threads
> * 8 Thread -1584268400 (LWP 7789)  0xb7e9eccb in
> cimg_library::CImg<float>::greycstoration_thread (arg=0x8c7a1dc) at
> greycstoration.h:144
>   5 Thread -1247376496 (LWP 7635)  0xb7fa3410 in __kernel_vsyscall ()
>   4 Thread -1255769200 (LWP 7628)  0xb7fa3410 in __kernel_vsyscall ()
>   1 Thread -1245477200 (LWP 7553)  0xb7fa3410 in __kernel_vsyscall ()
>
> (gdb) bt
> #0  0xb7e9eccb in cimg_library::CImg<float>::greycstoration_thread
> (arg=0x8c7a1dc) at greycstoration.h:144
> #1  0xb5f494bb in start_thread () from /lib/libpthread.so.0
> #2  0xb5d0676e in clone () from /lib/libc.so.6
>
> (gdb) thread 5
> [Switching to thread 5 (Thread -1247376496 (LWP 7635))]#0  0xb7fa3410 in
> __kernel_vsyscall ()
> (gdb) bt
> #0  0xb7fa3410 in __kernel_vsyscall ()
> #1  0xb5f4db5c in pthread_cond_timedwait@@GLIBC_2.3.2 ()
> from /lib/libpthread.so.0
> #2  0xb65224ca in ?? () from /usr/qt/3/lib/libqt-mt.so.3
> #3  0xb5a67684 in ?? ()
> #4  0xb5a676b4 in ?? ()
> #5  0xb5a676f0 in ?? ()
> #6  0xb68221b4 in QMutex::unlock () from /usr/qt/3/lib/libqt-mt.so.3
> #7  0xb6522567 in QThread::usleep () from /usr/qt/3/lib/libqt-mt.so.3
> #8  0xb7e82d12 in Digikam::GreycstorationIface::iterationLoop
> (this=0x8dcb9f0,
> iter=1) at greycstorationiface.cpp:416
> #9  0xb7e832a4 in Digikam::GreycstorationIface::resize (this=0x8dcb9f0) at
> greycstorationiface.cpp:384
> #10 0xb7e83d78 in Digikam::GreycstorationIface::filterImage
> (this=0x8dcb9f0)
> at greycstorationiface.cpp:203
> #11 0xb7e57546 in Digikam::DImgThreadedFilter::startComputation
> (this=0x8dcb9f0) at dimgthreadedfilter.cpp:143
> #12 0xb7e5059f in Digikam::DImgThreadedFilter::run (this=0x8dcb9f0)
> at ../../../digikam/libs/dimg/filters/dimgthreadedfilter.h:101
> #13 0xb65228e3 in QThreadInstance::start () from /usr/qt/3/lib/libqt-
> mt.so.3
> #14 0xb5f494bb in start_thread () from /lib/libpthread.so.0
> #15 0xb5d0676e in clone () from /lib/libc.so.6
>
> (gdb) thread 4
> [Switching to thread 4 (Thread -1255769200 (LWP 7628))]#0  0xb7fa3410 in
> __kernel_vsyscall ()
> (gdb) bt
> #0  0xb7fa3410 in __kernel_vsyscall ()
> #1  0xb5f4db5c in pthread_cond_timedwait@@GLIBC_2.3.2 ()
> from /lib/libpthread.so.0
> #2  0xb68232b9 in QWaitCondition::wait () from /usr/qt/3/lib/libqt-mt.so.3
> #3  0xb7e7b53c in Digikam::LoadSaveThread::run (this=0xb5f4140) at
> loadsavethread.cpp:115
> #4  0xb65228e3 in QThreadInstance::start () from /usr/qt/3/lib/libqt-
> mt.so.3
> #5  0xb5f494bb in start_thread () from /lib/libpthread.so.0
> #6  0xb5d0676e in clone () from /lib/libc.so.6
>
> (gdb) thread 1
> [Switching to thread 1 (Thread -1245477200 (LWP 7553))]#0  0xb7fa3410 in
> __kernel_vsyscall ()
> (gdb) bt
> #0  0xb7fa3410 in __kernel_vsyscall ()
> #1  0xb5d000e1 in select () from /lib/libc.so.6
> #2  0xb64d9618 in QEventLoop::processEvents ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #3  0xb65404a1 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-
> mt.so.3
> #4  0xb652936f in QApplication::enter_loop () from /usr/qt/3/lib/libqt-
> mt.so.3
> #5  0xb670db16 in QDialog::exec () from /usr/qt/3/lib/libqt-mt.so.3
> #6  0xb7eff94e in Digikam::EditorWindow::slotResize (this=0x8c78528) at
> editorwindow.cpp:593
> #7  0xb7f041f3 in Digikam::EditorWindow::qt_invoke (this=0x8c78528,
> _id=76,
> _o=0xbfa34a58) at editorwindow.moc:229
> #8  0xb7f0b210 in Digikam::ImageWindow::qt_invoke (this=0x8c78528, _id=76,
> _o=0xbfa34be8) at imagewindow.moc:232
> #9  0xb6588b49 in QObject::activate_signal () from /usr/qt/3/lib/libqt-
> mt.so.3
> #10 0xb658979d in QObject::activate_signal () from /usr/qt/3/lib/libqt-
> mt.so.3
> #11 0xb6dd3f8c in KAction::activated (this=0x8d56818) at kaction.moc:176
> #12 0xb6dd47a1 in KAction::slotActivated (this=0xbfa34be8) at kaction.cpp
> :1102
> #13 0xb6dd49eb in KAction::slotPopupActivated (this=0x8d56818) at
> kaction.cpp:1137
> #14 0xb6dd4d1c in KAction::qt_invoke (this=0x8d56818, _id=16,
> _o=0xbfa34d24)
> at kaction.moc:219
> #15 0xb6588b49 in QObject::activate_signal () from /usr/qt/3/lib/libqt-
> mt.so.3
> #16 0xb68c172e in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3
> #17 0xb65a4b05 in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3
> #18 0xb668dec9 in QPopupMenu::mouseReleaseEvent ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #19 0xb6dc30a0 in KPopupMenu::mouseReleaseEvent (this=0x8d680a8,
> e=0xbfa3512c)
> at kpopupmenu.cpp:508
> #20 0xb65c18be in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
> #21 0xb6529977 in QApplication::internalNotify ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #22 0xb652a748 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
> #23 0xb6b3d86b in KApplication::notify (this=0xbfa355c0,
> receiver=0x8d680a8,
> event=0xbfa3512c) at kapplication.cpp:550
> #24 0xb64ca996 in QETWidget::translateMouseEvent ()
> from /usr/qt/3/lib/libqt-mt.so.3
> ---Type <return> to continue, or q <return> to quit---
> #25 0xb64c9940 in QApplication::x11ProcessEvent ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #26 0xb64d9831 in QEventLoop::processEvents ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #27 0xb65404a1 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-
> mt.so.3
> #28 0xb6540326 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
> #29 0xb65293ff in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
> #30 0x0804b1d0 in main (argc=-1079814060, argv=0xb7fb24a9) at main.cpp:321
>
>
> _______________________________________________
> Digikam-devel mailing list
> Digikam-devel at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-devel/attachments/20070327/cbb0132c/attachment.html>


More information about the Digikam-devel mailing list