Bug 367580

Summary: Digikam freeze, and most of the computer, when geolocalising pictures.
Product: [Applications] digikam Reporter: philippe.quaglia
Component: Geolocation-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 5.1.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.2.0
Sentry Crash Report:
Attachments: View of the sceen, with the terminal and the frozen digikam

Description philippe.quaglia 2016-08-19 17:13:03 UTC
I use the «item» «edit geolocalisation» tool. I the tool, I select a set of images and slide them to the map to geolocalise them. I can do it once or twice, and then digikam freezes, and all the computer freezes too. The pointer does not have any more effect, only the keyboard keys can be used. It allows me to open the dash and logout, it is the only way I found to get out.
It happens all the time, but after one or two set of pictures have been geolocalised.

I have run digikam in backtrace, to get the information, but as everything was frozen, it was difficult to get the data. The only think I was able to do was to take a picture of the screen, as attached. You can see in the background the geolocalisation tool, with images selected. Every thing has frozen when I have slided the selection to the map. In the terminal, you can see the backtrace, I only get on line: «thread 0x7fff5abb9700 (LWP 15230) exited».


Reproducible: Sometimes

Steps to Reproduce:
1.Geolocalise pictures, once or twice
2.
3.
Comment 1 philippe.quaglia 2016-08-19 17:13:53 UTC
Created attachment 100685 [details]
View of the sceen, with the terminal and the frozen digikam
Comment 2 caulier.gilles 2016-08-19 17:16:38 UTC
Run digiKam on gdb as explained here and give us the backtrace :

https://www.digikam.org/contrib

Gilles Caulier
Comment 3 philippe.quaglia 2016-08-20 08:22:08 UTC
Already did it, as explained above. See the picture. As every thing is frozen, does not found any other way to get it than taking a picture of the screen...
Comment 4 Maik Qualmann 2016-08-20 20:44:47 UTC
What happens when you use Marble and play with it? I think it's a problem with your graphics drivers.

Maik
Comment 5 caulier.gilles 2016-08-21 08:17:42 UTC
Not reproducible here too, under Linux, MacOS and Windows.

As Maik said it sound like a video card driver problem on your computer...

Check your system

Gilles Caulier
Comment 6 philippe.quaglia 2016-08-21 16:26:08 UTC
Thanks for your answers. That's strange, because it works well with Digikam 4.11 (I'm now working with 4.11 for géolocalisation, and 5.1 for the other stuff). I do not have any graphic cards, just the integrated graphic driver from the processor.
I will play with marble and tell you if i get the bug too.
Regards.
Comment 7 caulier.gilles 2016-08-21 16:52:57 UTC
I'm not sure to 100%, but i think Marble has plugin based on OpenGL. This can be the problem.

Gilles Caulier
Comment 8 philippe.quaglia 2016-08-22 17:37:24 UTC
Hello, I managed to make additional test today, and I managed to have a complete backtrace this time. I explained: I improperly used the term «freeze», because in fact, the keyboard is still usable, while the mouse moves the cursor but does not make any action. So I opened a system window, and 2 terminals. I launched digikam with gdb with one terminal. When the freeze happened, I have been able to make a backtrace, and to kill digikam, to be able to recover the mouse control and to retrieve the backtrace. Previously, my only way out was to logoff, and I was loosing the backtrace information.
Therefore, is here the backtrace I get (hope this helps, it's ununderstandable for me...).
Regards.

(gdb) bt
#0  0x00007ffff3edce8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffec37f39c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffec37f4ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff4de4a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff4d8bdea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff50c49e2 in QBasicDrag::drag(QDrag*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#6  0x00007ffff50dd569 in QDragManager::drag(QDrag*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#7  0x00007ffff50dca4a in QDrag::start(QFlags<Qt::DropAction>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#8  0x00007ffff6c69b34 in Digikam::GPSImageList::startDrag (this=0x4a47360, 
    supportedActions=...)
    at /build/digikam5-HecaC6/digikam5-5.1.0/core/utilities/geolocation/editor/items/gpsimagelist.cpp:122
#9  0x00007ffff58e7ae0 in QAbstractItemView::mouseMoveEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff5927bd3 in QTreeView::mouseMoveEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff56c3f88 in QWidget::event(QEvent*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff57c2b5e in QFrame::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff58e85db in QAbstractItemView::viewportEvent(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff592710c in QTreeView::viewportEvent(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff4d8e412 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff568103c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff5686c19 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff4d8e62b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff5685b32 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff56de57b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff56e0b3b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff568105c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
---Type <return> to continue, or q <return> to quit---
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff5686516 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff4d8e62b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff50d0521 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007ffff50d21e5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007ffff50b5f38 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007fffc6c48070 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#29 0x00007fffec37f1a7 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fffec37f400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffec37f4ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff4de4a7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#33 0x00007ffff4d8bdea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff587bc7d in QDialog::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff752b6cf in Digikam::DigikamApp::slotEditGeolocation (
    this=<optimized out>)
    at /build/digikam5-HecaC6/digikam5-5.1.0/core/app/main/digikamapp.cpp:3270
#36 0x00007ffff75f5485 in Digikam::DigikamApp::qt_static_metacall (
    _o=0x7209e0, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /build/digikam5-HecaC6/digikam5-5.1.0/obj-x86_64-linux-gnu/core/app/moc_digikamapp.cpp:406
#37 0x00007ffff4dbcfca in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007ffff5677412 in QAction::triggered(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff5679898 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff57fbe22 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff58020bc in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff5806030 in QMenu::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#43 0x00007ffff56c3f88 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff5806a83 in QMenu::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007ffff568105c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff5686c19 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007ffff4d8e62b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007ffff5685b32 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff56de8dd in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff56e0b3b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff568105c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff5686516 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007ffff4d8e62b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#54 0x00007ffff50d0521 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#55 0x00007ffff50d21e5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#56 0x00007ffff50b5f38 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#57 0x00007fffc6c48070 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#58 0x00007fffec37f1a7 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007fffec37f400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007fffec37f4ac in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007ffff4de4a7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#62 0x00007ffff4d8bdea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00007ffff4d93e8c in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#64 0x0000000000405d6f in main (argc=1, argv=<optimized out>)
---Type <return> to continue, or q <return> to quit---
    at /build/digikam5-HecaC6/digikam5-5.1.0/core/app/main/main.cpp:238