Bug 328373 - Crash when rotating 30+ images without saving in folder with 1,200+ images
Summary: Crash when rotating 30+ images without saving in folder with 1,200+ images
Status: RESOLVED WORKSFORME
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: 18.08.1
Platform: Kubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-03 11:25 UTC by Martin Tlustos
Modified: 2021-01-16 04:34 UTC (History)
3 users (show)

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 Martin Tlustos 2013-12-03 11:25:10 UTC
Application: gwenview (4.11.2)
KDE Platform Version: 4.11.2
Qt Version: 4.8.4
Operating System: Linux 3.11.0-14-generic i686
Distribution: Ubuntu 13.10

-- Information about the crash:
I was going through around 1,200 images and wanted to rotate those that were taken as portrait. After rotating around 30 images without saving, gwenview crashed. Memory consumption at that time had gone up to 2.4G

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb433b740 (LWP 13969))]

Thread 7 (Thread 0xb0a1ab40 (LWP 13975)):
#0  0xb4f1787b in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb4f17be8 in g_mutex_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb4ed4cb2 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb71ce8df in QEventDispatcherGlib::processEvents (this=0xb0100468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0xb719d9f3 in QEventLoop::processEvents (this=this@entry=0xb0a1a228, flags=...) at kernel/qeventloop.cpp:149
#5  0xb719dd19 in QEventLoop::exec (this=this@entry=0xb0a1a228, flags=...) at kernel/qeventloop.cpp:204
#6  0xb708ce3d in QThread::exec (this=this@entry=0xa1fd368) at thread/qthread.cpp:542
#7  0xb717de14 in QInotifyFileSystemWatcherEngine::run (this=0xa1fd368) at io/qfilesystemwatcher_inotify.cpp:265
#8  0xb708f72f in QThreadPrivate::start (arg=0xa1fd368) at thread/qthread_unix.cpp:338
#9  0xb4f9dd78 in start_thread (arg=0xb0a1ab40) at pthread_create.c:311
#10 0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 6 (Thread 0xadde9b40 (LWP 13977)):
#0  0xb5bf2173 in __x86.get_pc_thunk.bx () from /lib/i386-linux-gnu/libc.so.6
#1  0xb5bc3bd8 in pthread_mutex_unlock (mutex=0xad400558) at forward.c:194
#2  0xb4f17bf0 in g_mutex_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb4ed412e in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb4ed4a5f in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb4ed4ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb71ce8df in QEventDispatcherGlib::processEvents (this=0xad400468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0xb719d9f3 in QEventLoop::processEvents (this=this@entry=0xadde9228, flags=...) at kernel/qeventloop.cpp:149
#8  0xb719dd19 in QEventLoop::exec (this=this@entry=0xadde9228, flags=...) at kernel/qeventloop.cpp:204
#9  0xb708ce3d in QThread::exec (this=this@entry=0xa3a8b40) at thread/qthread.cpp:542
#10 0xb717de14 in QInotifyFileSystemWatcherEngine::run (this=0xa3a8b40) at io/qfilesystemwatcher_inotify.cpp:265
#11 0xb708f72f in QThreadPrivate::start (arg=0xa3a8b40) at thread/qthread_unix.cpp:338
#12 0xb4f9dd78 in start_thread (arg=0xadde9b40) at pthread_create.c:311
#13 0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 5 (Thread 0xa68b2b40 (LWP 13985)):
#0  0xb77a6424 in __kernel_vsyscall ()
#1  0xb4fa184b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb5bc39bc in __pthread_cond_wait (cond=0xa0746d0, mutex=0xa0746b8) at forward.c:149
#3  0xb708fca5 in wait (time=4294967295, this=0xa0746b8) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=this@entry=0xa047da8, mutex=mutex@entry=0xa047da4, time=time@entry=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb76a799b in Gwenview::SemanticInfoThread::run (this=0xa047d98) at ../../lib/semanticinfo/nepomuksemanticinfobackend.cpp:145
#6  0xb708f72f in QThreadPrivate::start (arg=0xa047d98) at thread/qthread_unix.cpp:338
#7  0xb4f9dd78 in start_thread (arg=0xa68b2b40) at pthread_create.c:311
#8  0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 4 (Thread 0xa60b1b40 (LWP 13986)):
#0  0xb77a6424 in __kernel_vsyscall ()
#1  0xb4fa184b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb5bc39bc in __pthread_cond_wait (cond=0xa140ca0, mutex=0xa140c88) at forward.c:149
#3  0xb708fca5 in wait (time=4294967295, this=0xa140c88) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=this@entry=0xa140784, mutex=0xa140780, time=time@entry=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb76814f8 in Gwenview::ThumbnailGenerator::run (this=0xa140748) at ../../lib/thumbnailprovider/thumbnailgenerator.cpp:209
#6  0xb708f72f in QThreadPrivate::start (arg=0xa140748) at thread/qthread_unix.cpp:338
#7  0xb4f9dd78 in start_thread (arg=0xa60b1b40) at pthread_create.c:311
#8  0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 3 (Thread 0xa58b0b40 (LWP 14320)):
#0  0xb77a6424 in __kernel_vsyscall ()
#1  0xb5ba6a0b in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xa19ed392 in ?? () from /lib/i386-linux-gnu/libusb-1.0.so.0
#3  0xb4f9dd78 in start_thread (arg=0xa58b0b40) at pthread_create.c:311
#4  0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 2 (Thread 0x99fcbb40 (LWP 14844)):
[KCrash Handler]
#7  0xb58e2815 in jsimd_ycc_rgb_convert_sse2.columnloop () from /usr/lib/i386-linux-gnu/libjpeg.so.8
#8  0x00001200 in ?? ()
#9  0xb0dbfa20 in ?? ()
#10 0xb0dbf450 in ?? ()
#11 0xb58d745b in jsimd_ycc_rgb_convert (cinfo=0x99fcaef8, input_buf=0xb0dbf3ac, input_row=0, output_buf=0x99fcadcc, num_rows=1) at jsimd_i386.c:282
#12 0xb58c9ea4 in sep_upsample (cinfo=0x99fcaef8, input_buf=0xb0dbf9d8, in_row_group_ctr=0xb0dbfa04, in_row_groups_avail=8, output_buf=0x99fcadcc, out_row_ctr=0x99fcad6c, out_rows_avail=<optimized out>) at jdsample.c:133
#13 0xb58c2986 in process_data_simple_main (cinfo=0x99fcaef8, output_buf=0x99fcadcc, out_row_ctr=0x99fcad6c, out_rows_avail=1) at jdmainct.c:370
#14 0xb58bd400 in jpeg_read_scanlines (cinfo=0x99fcaef8, scanlines=0x99fcadcc, max_lines=1) at jdapistd.c:176
#15 0xb765d6b4 in Gwenview::loadJpeg (image=0x10cd4c04, ioDevice=0x99fcb1ac, scaledSize=...) at ../../lib/imageformats/jpeghandler.cpp:182
#16 0xb6229c8d in QImageReader::read (this=0x99fcb19c, image=image@entry=0x10cd4c04) at image/qimagereader.cpp:1205
#17 0xb7631743 in Gwenview::LoadingDocumentImplPrivate::loadImageData (this=0x10cd4ba8) at ../../lib/document/loadingdocumentimpl.cpp:265
#18 0xb762f8f0 in QtConcurrent::VoidStoredMemberFunctionPointerCall0<void, Gwenview::LoadingDocumentImplPrivate>::runFunctor (this=0x1027dc40) at /usr/include/qt4/QtCore/qtconcurrentstoredfunctioncall.h:209
#19 0xb7625f38 in QtConcurrent::RunFunctionTask<void>::run (this=0x1027dc40) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:134
#20 0xb708263a in QThreadPoolThread::run (this=0xac27420) at concurrent/qthreadpool.cpp:107
#21 0xb708f72f in QThreadPrivate::start (arg=0xac27420) at thread/qthread_unix.cpp:338
#22 0xb4f9dd78 in start_thread (arg=0x99fcbb40) at pthread_create.c:311
#23 0xb5bb601e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 1 (Thread 0xb433b740 (LWP 13969)):
#0  0xb77a6424 in __kernel_vsyscall ()
#1  0xb4f9ee1c in pthread_join (threadid=2777353024, thread_return=0x0) at pthread_join.c:92
#2  0xa19ed7a9 in ?? () from /lib/i386-linux-gnu/libusb-1.0.so.0
#3  0xa19ebb16 in ?? () from /lib/i386-linux-gnu/libusb-1.0.so.0
#4  0xa19e3d64 in libusb_exit () from /lib/i386-linux-gnu/libusb-1.0.so.0
#5  0xa2af8582 in ?? () from /usr/lib/i386-linux-gnu/libdc1394.so.22
#6  0xa2ae4cb7 in dc1394_free () from /usr/lib/i386-linux-gnu/libdc1394.so.22
#7  0xa37a5fb2 in CvDC1394::~CvDC1394() () from /usr/lib/libopencv_highgui.so.2.4
#8  0xb5af7791 in __run_exit_handlers (status=status@entry=1, listp=0xb5c743e4 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:77
#9  0xb5af781d in __GI_exit (status=1) at exit.c:99
#10 0xb61c2dc8 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:782
#11 0xb6c9b9f9 in KApplication::xioErrhandler (this=0xbfad4780, dpy=dpy@entry=0x9f57230) at ../../kdeui/kernel/kapplication.cpp:419
#12 0xb6c9bab4 in kde_xio_errhandler (dpy=0x9f57230) at ../../kdeui/kernel/kapplication.cpp:126
#13 0xb5488b24 in _XIOError () from /usr/lib/i386-linux-gnu/libX11.so.6
#14 0xb548629f in _XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6
#15 0xb5477530 in XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6
#16 0xb6203cda in x11EventSourceCheck (s=0x9f52348) at kernel/qguieventdispatcher_glib.cpp:85
#17 0xb4ed458f in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#18 0xb4ed4afa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#19 0xb4ed4ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#20 0xb71ce8bf in QEventDispatcherGlib::processEvents (this=this@entry=0x9f23e90, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#21 0xb620432e in QGuiEventDispatcherGlib::processEvents (this=0x9f23e90, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#22 0xb719d9f3 in QEventLoop::processEvents (this=this@entry=0xbfad4708, flags=...) at kernel/qeventloop.cpp:149
#23 0xb719dd19 in QEventLoop::exec (this=this@entry=0xbfad4708, flags=...) at kernel/qeventloop.cpp:204
#24 0xb71a389e in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#25 0xb614d974 in QApplication::exec () at kernel/qapplication.cpp:3828
#26 0x080670b4 in main (argc=6, argv=0xbfad4864) at ../../app/main.cpp:139

Reproducible: Didn't try
Comment 1 Martin Tlustos 2013-12-03 11:34:30 UTC
Each "rotate" increases memory consumption by about 70MB, using 0ver 2GB after resizing 30 images. After saving, memory consumption does not drop back to the state before rotating.
Comment 2 Shlomi Fish 2013-12-06 11:12:45 UTC
(In reply to comment #1)
> Each "rotate" increases memory consumption by about 70MB, using 0ver 2GB
> after resizing 30 images. After saving, memory consumption does not drop
> back to the state before rotating.

I can confirm this here - gwenview-4.11.3-1.mga4 on Mageia Linux Cauldron - the RAM consumption consistently grows after rotating large images.

Regards,

-- Shlomi Fish
Comment 3 Martin Tlustos 2018-10-08 08:01:42 UTC
Still seems to be around in gwenview 18.08.1. Memory consumption rises with several images rotated and memory is not released after saving rotation.
Comment 4 Justin Zobel 2020-12-17 05:38:31 UTC
Thank you for the crash report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 5 Bug Janitor Service 2021-01-01 04:34:55 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 6 Bug Janitor Service 2021-01-16 04:34:13 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!