Commit 050d0312 authored by Carlos Soriano Sánchez's avatar Carlos Soriano Sánchez
Browse files

thumbnails: avoid crash with jp2 images

When thumbnailing a directory with jp2 some times nautilus
was crashing.
However tests on gdk_pixbuf were successful and gnome-desktop-thumbnails
generation tests were also working.

Also, nautilus is using raw pthreads in the thumbnail generation
code, and seems the crash was actually only happening when inside the
pthread and when using gdk-pixbuf, not only the gnome-desktop-thumbnail.

Looking at the implementation of glib in threads and nautilus, one of
the differences is that nautilus sets a stack size.
The crash is happening because, unluckely, libjasper with some big
images is using more stack size than the one nautilus is setting, which
leads to a crash in libjasper.

To fix it, remove the stack size set by nautilus, similarly to what glib
does, not setting an actual stack size.

Obviously the right thing to do is rewrite nautilus code to use the
glib threads, but I want to let that as a newcomer bug to do.
parent b734b74d
......@@ -163,9 +163,6 @@ thumbnail_thread_starter_cb (gpointer data)
pthread_attr_init (&thread_attributes);
pthread_attr_setdetachstate (&thread_attributes,
PTHREAD_CREATE_DETACHED);
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
pthread_attr_setstacksize (&thread_attributes, 128*1024);
#endif
#ifdef DEBUG_THUMBNAILS
g_message ("(Main Thread) Creating thumbnails thread\n");
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment