[Rhythmbox-devel] Trying to debug "Too many open files", hitting "uninitialised value"
- From: Jan Girlich <vollkorn cryptobitch de>
- To: rhythmbox-devel gnome org
- Subject: [Rhythmbox-devel] Trying to debug "Too many open files", hitting "uninitialised value"
- Date: Sun, 24 Nov 2013 18:28:20 +0100
Hi,
this is my first post, so I'll introduce myself briefly.
My name is Jan, I'm 31 years old and work as a C/C++ developer in
Hamburg, Germany. At work I do mostly Qt on Windows, but personally I
prefer Linux, although I barely ever code on it.
I came across a bug when importing large (>2000) collections of music
files in the current Rhythmbox-2.99.1-0ubuntu1 on 64 bit:
(gst-switch-srv:1709): GLib-ERROR **: *Creating pipes for GWakeup: Too
many open files*
So I downloaded the source, whipped out valgrind and tried to find out
if all the filedescriptors are closed again by doing:
valgrind --track-fds=yes rhythmbox
Unfortunately I don't get further than shortly after starting Rhythmbox
because of the following crash. As I read it there is an uninitialized
variable and it just goes downhill from there.
Can you help me debugging this further? Like how do I find out which
variable is uninitialised? Remember I'm a Windows dev, just learning to
use the gnu tools.
valgrind output:
==21998== Conditional jump or move depends on uninitialised value(s)
==21998== at 0x54D65B3: g_type_check_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CC2D3: g_signal_handlers_unblock_matched (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4ED0CEE: ignore_selection_changes
(rb-library-browser.c:569)
==21998== by 0x4ED0D41: query_complete_cb (rb-library-browser.c:593)
==21998== by 0x54B4187: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54C5B1C: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CD828: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CDAE1: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4EECA4A: idle_process_update (rhythmdb-query-model.c:1216)
==21998== by 0x4EECBE0: idle_process_update_idle
(rhythmdb-query-model.c:1164)
==21998== by 0x573D3B5: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== by 0x573D707: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998==
==21998== Use of uninitialised value of size 8
==21998== at 0x54D65B9: g_type_check_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CC2D3: g_signal_handlers_unblock_matched (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4ED0CEE: ignore_selection_changes
(rb-library-browser.c:569)
==21998== by 0x4ED0D41: query_complete_cb (rb-library-browser.c:593)
==21998== by 0x54B4187: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54C5B1C: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CD828: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CDAE1: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4EECA4A: idle_process_update (rhythmdb-query-model.c:1216)
==21998== by 0x4EECBE0: idle_process_update_idle
(rhythmdb-query-model.c:1164)
==21998== by 0x573D3B5: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== by 0x573D707: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998==
==21998== Invalid read of size 8
==21998== at 0x54D65B9: g_type_check_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CC2D3: g_signal_handlers_unblock_matched (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4ED0CEE: ignore_selection_changes
(rb-library-browser.c:569)
==21998== by 0x4ED0D41: query_complete_cb (rb-library-browser.c:593)
==21998== by 0x54B4187: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54C5B1C: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CD828: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CDAE1: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4EECA4A: idle_process_update (rhythmdb-query-model.c:1216)
==21998== by 0x4EECBE0: idle_process_update_idle
(rhythmdb-query-model.c:1164)
==21998== by 0x573D3B5: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== by 0x573D707: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== Address 0x3 is not stack'd, malloc'd or (recently) free'd
==21998==
==21998==
==21998== Process terminating with default action of signal 11 (SIGSEGV)
==21998== Access not within mapped region at address 0x3
==21998== at 0x54D65B9: g_type_check_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CC2D3: g_signal_handlers_unblock_matched (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4ED0CEE: ignore_selection_changes
(rb-library-browser.c:569)
==21998== by 0x4ED0D41: query_complete_cb (rb-library-browser.c:593)
==21998== by 0x54B4187: g_closure_invoke (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54C5B1C: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CD828: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x54CDAE1: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==21998== by 0x4EECA4A: idle_process_update (rhythmdb-query-model.c:1216)
==21998== by 0x4EECBE0: idle_process_update_idle
(rhythmdb-query-model.c:1164)
==21998== by 0x573D3B5: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== by 0x573D707: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==21998== If you believe this happened as a result of a stack
==21998== overflow in your program's main thread (unlikely but
==21998== possible), you can try to increase the size of the
==21998== main thread stack using the --main-stacksize= flag.
==21998== The main thread stack size used in this run was 8388608.
Cheers
Jan
PS: I'm aware that I can set ulimit to a higher value or import the
files in smaller chunks, but I'd like to get this nasty bug fixed.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]