rhythmbox crashed with SIGSEGV in g_hash_table_lookup_node()

Bug #806306 reported by Martin Schaaf on 2011-07-06
50
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Rhythmbox
Invalid
Undecided
Unassigned
rhythmbox (Ubuntu)
High
Unassigned

Bug Description

Steps to reproduce:

1. insert a CD
2. let rhythmbox recognize it
3. remove it with the button on the drive
4. the CD is now removed from the drive but rhythmbox already shows it
5. now insert a new CD
6. rhythmbox crashes

#0 0x00007f08c4128740 in ?? ()
No symbol table info available.
#1 0x00007f08dd022a56 in g_hash_table_lookup_node (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:313
        node = <value optimized out>
        node_index = <value optimized out>
        hash_value = <value optimized out>
        step = 0
#2 g_hash_table_remove_internal (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:1093
        node = <value optimized out>
        node_index = 3290159760
        __PRETTY_FUNCTION__ = "g_hash_table_remove_internal"
#3 0x00007f08e1ae059c in remove_child (data=<value optimized out>, parent=<value optimized out>) at rhythmdb-tree.c:1514
        _g_boolean_var_ = <value optimized out>
#4 0x00007f08e1ae0631 in remove_entry_from_album (db=<value optimized out>, entry=0x41ec890) at rhythmdb-tree.c:1535
        table = 0x3ad0b70
        __PRETTY_FUNCTION__ = "remove_entry_from_album"
#5 0x00007f08e1ae4675 in rhythmdb_tree_entry_set (adb=<value optimized out>, entry=0x41ec890, propid=<value optimized out>, value=<value optimized out>) at rhythmdb-tree.c:1608
        artist = <value optimized out>
        genre = <value optimized out>
        albumname = 0x7f08c41bda90 ""
        db = 0x1d64040
        type = 0x7f08c4128740
        __PRETTY_FUNCTION__ = "rhythmdb_tree_entry_set"
#6 0x00007f08e1acf8b6 in rhythmdb_entry_set_internal (db=0x1d64040, entry=0x41ec890, notify_if_inserted=<value optimized out>, propid=5, value=0x7fff7aeb6ff0) at rhythmdb.c:3345
        klass = 0x1cfa9b0
        handled = <value optimized out>
        podcast = 0x0
        old_value = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        nop = <value optimized out>
        __PRETTY_FUNCTION__ = "rhythmdb_entry_set_internal"
#7 0x00007f08b5f98fc1 in update_tracks (source=<value optimized out>, property=RHYTHMDB_PROP_ALBUM, value=0x7fff7aeb6ff0) at rb-audiocd-source.c:1178
        priv = 0x1d5ea90
        db = 0x1d64040
        i = 0x3aa2560

ProblemType: Crash
DistroRelease: Ubuntu 11.04
Package: rhythmbox 0.13.3-0ubuntu6
ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
Uname: Linux 2.6.38-8-generic x86_64
Architecture: amd64
Date: Wed Jul 6 06:50:47 2011
EcryptfsInUse: Yes
ExecutablePath: /usr/bin/rhythmbox
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
ProcCmdline: rhythmbox
ProcEnviron:
 LANGUAGE=de_DE:en
 PATH=(custom, user)
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0x7f08c4128740: add %dl,0x1d1(%rcx)
 PC (0x7f08c4128740) in non-executable VMA region: 0x7f08c4000000-0x7f08c425d000 rw-p None
 source "%dl" ok
 destination "0x1d1(%rcx)" (0xc4128911) not located in a known VMA region (needed writable region)!
SegvReason:
 executing writable VMA None
 writing unknown VMA
Signal: 11
SourcePackage: rhythmbox
StacktraceTop:
 ?? ()
 g_hash_table_lookup_node (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:313
 g_hash_table_remove_internal (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:1093
 remove_child (data=<value optimized out>, parent=<value optimized out>) at rhythmdb-tree.c:1514
 remove_entry_from_album (db=<value optimized out>, entry=0x41ec890) at rhythmdb-tree.c:1535
Title: rhythmbox crashed with SIGSEGV in g_hash_table_lookup_node()
UpgradeStatus: Upgraded to natty on 2011-04-23 (73 days ago)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

Martin Schaaf (mascha) wrote :
visibility: private → public

StacktraceTop:
 ?? ()
 g_hash_table_lookup_node (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:313
 g_hash_table_remove_internal (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:1093
 remove_child (data=<value optimized out>, parent=<value optimized out>) at rhythmdb-tree.c:1514
 remove_entry_from_album (db=<value optimized out>, entry=0x41ec890) at rhythmdb-tree.c:1535

Changed in rhythmbox (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
Pedro Villavicencio (pedro) wrote :

Thanks for the report, this looks similar to bug https://bugzilla.gnome.org/show_bug.cgi?id=647184, linking the report.

Changed in rhythmbox (Ubuntu):
status: New → Triaged
Changed in rhythmbox:
importance: Unknown → Critical
status: Unknown → New
Bryce Harrington (bryce) on 2012-06-02
description: updated
Changed in rhythmbox (Ubuntu):
importance: Medium → High
Bryce Harrington (bryce) wrote :

#1 0x00007f08dd022a56 in g_hash_table_lookup_node (hash_table=0x41ec880, key=0x41ec890, notify=1) at /build/buildd/glib2.0-2.28.6/./glib/ghash.c:313
        node = <value optimized out>
        node_index = <value optimized out>
        hash_value = <value optimized out>
        step = 0

313: hash_value = (* hash_table->hash_func) (key);
314: if (G_UNLIKELY (hash_value <= 1))
315: hash_value = 2;
316:
317: node_index = hash_value % hash_table->mod;

Can hash_table->hash_func == NULL ?

Line 313 has been since changed by this patch:
http://git.gnome.org/browse/glib/commit/glib/ghash.c?id=88f23fb1d9aa0f84cbeebe086db022864a7eb3be

Bryce Harrington (bryce) wrote :

Are you able to reproduce this on Precise?

I attempted using the directions provided, but on ejecting the first disc, rb cleared itself. The second cd was detected and loaded ok.

There have been some significant changes to the section of glib2.0 code this bug hit, perhaps it already got fixed upstream.

Changed in rhythmbox (Ubuntu):
status: Triaged → Incomplete

Thank you for taking the time to report this bug and helping to make Ubuntu better. We are sorry that we do not always have the capacity to look at all reported bugs in a timely manner. There have been many changes in Ubuntu since that time you reported the bug and your problem may have been fixed with some of the updates. It would help us a lot if you could test it on a currently supported Ubuntu version. When you test it and it is still an issue, kindly upload the updated logs by running apport-collect <bug #> and any other logs that are relevant for this particular issue.

Changed in rhythmbox:
importance: Critical → Undecided
status: New → Invalid
Changed in rhythmbox (Ubuntu):
status: Incomplete → Invalid
status: Invalid → Incomplete
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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