Crash inside Unity IconLoader

Bug #972796 reported by Thomi Richards
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Unity
New
Undecided
Michal Hruby

Bug Description

I'm running unity from trunk under gdb. While running autopilot, unity crashed inside the IconLoader. Here's the stack trace:

#0 0x00007fffafde62e0 in ?? ()
#1 0x00007fffe6ae85a6 in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
#2 0x00007fffe6b144f2 in ?? () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
#3 0x00007fffe6aaf488 in pixman_image_composite32 () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
#4 0x00007fffe6d5489d in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#5 0x00007fffe6d5630c in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#6 0x00007fffe6d5762b in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#7 0x00007fffe6d578a9 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#8 0x00007fffe6d75704 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#9 0x00007fffe6d4f3ed in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#10 0x00007fffe6d46290 in cairo_fill_preserve () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#11 0x00007fffe6d462a9 in cairo_fill () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#12 0x00007fffcbdf48a5 in ?? () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#13 0x00007fffcbdf12ca in ?? () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#14 0x00007fffcbde8cd3 in ?? () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#15 0x00007fffcbde90dc in ?? () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#16 0x00007fffcbde8cd3 in ?? () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#17 0x00007fffcbdf5478 in rsvg_handle_render_cairo_sub () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#18 0x00007fffcbdf5943 in rsvg_handle_get_pixbuf_sub () from /usr/lib/x86_64-linux-gnu/librsvg-2.so.2
#19 0x00007fffd806cd2b in ?? () from /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
#20 0x00007fffe537b6f1 in gdk_pixbuf_loader_close () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#21 0x00007fffe53779f9 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#22 0x00007fffe5379241 in gdk_pixbuf_new_from_stream_at_scale () from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#23 0x00007fffe221a098 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007fffe221cc72 in gtk_icon_info_load_icon () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007fffe34a3fb8 in unity::IconLoader::Impl::LoaderJobFunc (job=0xd8e6d70, canc=0x0, task=0x8ae80f0)
    at /home/thomi/code/canonical/unity/trunk/plugins/unityshell/src/IconLoader.cpp:468
#26 0x00007ffff1b7a12e in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#27 0x00007ffff5bcb218 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff5bca9b5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff703de9a in start_thread (arg=0x7fffafdf8700) at pthread_create.c:308
#30 0x00007ffff73454bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#31 0x0000000000000000 in ?? ()

As you can see, the crash is deep within the pixbuf/svg/pixman libraries. At frame 25, everything seems normal enough:

#25 0x00007fffe34a3fb8 in unity::IconLoader::Impl::LoaderJobFunc (job=0xd8e6d70, canc=0x0, task=0x8ae80f0)
    at /home/thomi/code/canonical/unity/trunk/plugins/unityshell/src/IconLoader.cpp:468
468 task->result = gtk_icon_info_load_icon(task->icon_info, &task->error);
(gdb) l
463 IconLoaderTask *task)
464 {
465 // careful here this is running in non-main thread
466 if (task->icon_info)
467 {
468 task->result = gtk_icon_info_load_icon(task->icon_info, &task->error);
469
470 gtk_icon_info_free (task->icon_info);
471 task->icon_info = NULL;
472 }

(gdb) print task
$1 = (unity::IconLoader::Impl::IconLoaderTask *) 0x8ae80f0

(gdb) print task->icon_info
$4 = (GtkIconInfo *) 0x6dbd0c0

This comment from the source code:

// careful here this is running in non-main thread

...makes me suspect this is a threading issue. However, inspecting the running threads in gdb does not reveal anything enlightening (at least, not to me).

Changed in unity:
assignee: nobody → Michal Hruby (mhr3)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.