assertion g_hash_table_remove in remove_child hit

Thomas Meyer <[email protected]>
Newsgroups gmane.comp.gnome.apps.rhythmbox.devel
Message-ID <[email protected]>
Hello,

I'm hitting this assertion in rhyhtmbox. I'm using the current git
version 3a5b74ee288e52255ee3786f89e389289c22d756 .

static gboolean
remove_child (RhythmDBTreeProperty *parent,
	      gconstpointer data)
{
->	g_assert (g_hash_table_remove (parent->children, data));
	if (g_hash_table_size (parent->children) <= 0) {
		return TRUE;
	}
	return FALSE;
}

bug or feature?

kind regards
thomas

#0  0xf7750430 in __kernel_vsyscall ()
No symbol table info available.
#1  0x43d4198f in raise () from /lib/libc.so.6
No symbol table info available.
#2  0x43d432d5 in abort () from /lib/libc.so.6
No symbol table info available.
#3  0x4755407f in g_assertion_message (domain=0xf76fb117 "RhythmDB", file=0xf76fb17d "rhythmdb-tree.c", line=1517, func=0xf76fc176 "remove_child", message=<optimized out>) at gtestutils.c:1425
        lstr = "1517\000QSG\306\325TG\364\277`G\034\327TG\a\034\240\ns[ZG\364\277`G"
        s = 0xaa76c40 "\250n\247\n\020\244\353C:ERROR:rhythmdb-tree.c:1517:remove_child: assertion failed: (g_hash_table_remove (parent->children, datax"
#4  0x47554610 in g_assertion_message_expr (domain=0xf76fb117 "RhythmDB", file=0xf76fb17d "rhythmdb-tree.c", line=1517, func=0xf76fc176 "remove_child", expr=0xf76fba44 "g_hash_table_remove (parent->children, data)") at gtestutils.c:1436
        s = <optimized out>
#5  0xf76b06c0 in remove_child (parent=0xf0d47400, data=0xf0d8b120) at rhythmdb-tree.c:1517
        __PRETTY_FUNCTION__ = "remove_child"
#6  0xf76b075e in remove_entry_from_album (db=0x984b050 [RhythmDBTree], entry=0xf0d8b120) at rhythmdb-tree.c:1538
        table = 0xa030208
        __PRETTY_FUNCTION__ = "remove_entry_from_album"
#7  0xf76b0e13 in rhythmdb_tree_entry_delete (adb=0x984b050 [RhythmDBTree], entry=0xf0d8b120) at rhythmdb-tree.c:1689
        db = 0x984b050 [RhythmDBTree]
        __PRETTY_FUNCTION__ = "rhythmdb_tree_entry_delete"
#8  0xf76995e0 in rhythmdb_entry_delete (db=0x984b050 [RhythmDBTree], entry=0xf0d8b120) at rhythmdb.c:3712
        klass = 0x97def70
        __PRETTY_FUNCTION__ = "rhythmdb_entry_delete"
        __FUNCTION__ = "rhythmdb_entry_delete"
#9  0xf76abac3 in song_update_availability (entry_type=0x9777aa0 [RhythmDBSongEntryType], entry=0xf0d8b120, avail=RHYTHMDB_ENTRY_AVAIL_NOT_FOUND) at rhythmdb-song-entry-types.c:171
        db = 0x984b050 [RhythmDBTree]
        __FUNCTION__ = "song_update_availability"
        __PRETTY_FUNCTION__ = "song_update_availability"
#10 0xf76aad04 in rhythmdb_entry_update_availability (entry=0xf0d8b120, avail=RHYTHMDB_ENTRY_AVAIL_NOT_FOUND) at rhythmdb-entry-type.c:125
        etype = 0x9777aa0 [RhythmDBSongEntryType]
        klass = 0x97ea948
#11 0xf7695251 in rhythmdb_process_stat_event (db=0x984b050 [RhythmDBTree], event=0xf0dc3140) at rhythmdb.c:2103
        entry = 0xf0d8b120
        action = 0x43ecfc50
        file_type = 157574984
        __FUNCTION__ = "rhythmdb_process_stat_event"
        __PRETTY_FUNCTION__ = "rhythmdb_process_stat_event"
#12 0xf76964d7 in rhythmdb_process_one_event (event=0xf0dc3140, db=0x984b050 [RhythmDBTree]) at rhythmdb.c:2505
        free = 1
        __FUNCTION__ = "rhythmdb_process_one_event"
#13 0xf76d3c2c in rb_async_queue_watch_dispatch (source=0x97f17f0, callback=0xf76963e2 <rhythmdb_process_one_event>, user_data=0x984b050) at rb-async-queue-watch.c:85
        watch = 0x97f17f0
        cb = 0xf76963e2 <rhythmdb_process_one_event>
        item = 0xf0dc3140
#14 0x4752e62f in g_main_dispatch (context=0x9646748) at gmain.c:2441
        dispatch = 0xf76d3bd1 <rb_async_queue_watch_dispatch>
        was_in_call = 0
        user_data = 0x984b050
        callback = 0xf76963e2 <rhythmdb_process_one_event>
        cb_funcs = 0x4760c33c
        cb_data = 0x9800dc0
        current_source_link = {data = 0x97f17f0, next = 0x0}
        need_destroy = <optimized out>
        source = 0x97f17f0
        current = 0x9811de0
        i = <optimized out>
#15 g_main_context_dispatch (context=0x9646748) at gmain.c:3011
No locals.
#16 0x4752ed70 in g_main_context_iterate (context=0x9646748, block=1196677136, dispatch=1, self=0x963d080) at gmain.c:3089
        max_priority = 300
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = <optimized out>
        fds = <optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#17 0x4752f3a7 in g_main_loop_run (loop=0x98b67d0) at gmain.c:3297
        self = 0x963d080
        __PRETTY_FUNCTION__ = "g_main_loop_run"
#18 0x460f8155 in gtk_main () at gtkmain.c:1362
        loop = 0x98b67d0
#19 0x4600af65 in gtk_application_run_mainloop (application=0x974a028 [RBShell]) at gtkapplication.c:115
No locals.
#20 0x4f8de55c in g_application_run (application=0x974a028 [RBShell], argc=2, argv=0xff830774) at gapplication.c:1323
        arguments = 0x98b67d0
        status = 0
        i = <optimized out>
        __PRETTY_FUNCTION__ = "g_application_run"
#21 0x08048e7a in main (argc=1, argv=0xff830774) at main.c:99
        shell = 0x974a028 [RBShell]
        autostarted = 0
        desktop_file_path = 0x9645600 ""
        new_argc = 2
        new_argv = 0xff830774
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.