Bug 540048 - Rhythmbox crash
Summary: Rhythmbox crash
Keywords:
Status: CLOSED DUPLICATE of bug 542176
Alias: None
Product: Fedora
Classification: Fedora
Component: libgpod
Version: 12
Hardware: i686
OS: Linux
low
urgent
Target Milestone: ---
Assignee: Bastien Nocera
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-22 02:33 UTC by michael
Modified: 2009-12-10 15:15 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2009-12-10 15:15:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description michael 2009-11-22 02:33:16 UTC
Description of problem: Rhythmbox crash


Version-Release number of selected component (if applicable): Rhythmbox 0.12.5


How reproducible: Rhythmbox hangs when I connect my ipod nano second generation.


Steps to Reproduce:
1.Connect ipod when Rhythmbox is open
2.
3.
  
Actual results: Crash


Expected results: Play music of ipod from Rhythmbox


Additional info: UUID: 61fac8ceec4d9a134af796e05f7a4197ceec7774
architecture: i686
cmdline: rhythmbox
component: rhythmbox
coredump: /var/cache/abrt/ccpp-1258842485-3147/coredump
executable: /usr/bin/rhythmbox
kernel: 2.6.31.5-127.fc12.i686
package: rhythmbox-0.12.5-8.fc12
rating: 3
reason: Process was terminated by signal 11
release: Fedora release 12 (Constantine)

backtrace
-----
[New Thread 3155]
Core was generated by `rhythmbox'.
Program terminated with signal 11, Segmentation fault.
#0  fast_validate (str=<value optimized out>) at gutf8.c:1588
	in gutf8.c

Thread 2 (Thread 3155):
#0  0x0034f416 in __kernel_vsyscall ()
No symbol table info available.
#1  0x0042af72 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
No locals.
#2  0x00700f3f in g_cond_timed_wait_posix_impl (cond=<value optimized out>, 
    entered_mutex=<value optimized out>, abs_time=<value optimized out>)
    at gthread-posix.c:242
        result = <value optimized out>
        end_time = {tv_sec = 1258842485, tv_nsec = 325392000}
        timed_out = <value optimized out>
        __PRETTY_FUNCTION__ = "g_cond_timed_wait_posix_impl"
#3  0x004857cc in g_async_queue_pop_intern_unlocked (queue=0x8cc6ed8, 
    try=<value optimized out>, end_time=<value optimized out>)
    at gasyncqueue.c:365
        retval = <value optimized out>
        __PRETTY_FUNCTION__ = "g_async_queue_pop_intern_unlocked"
#4  0x004d6f6f in g_thread_pool_wait_for_new_task (pool=0x8cc6ea0)
    at gthreadpool.c:220
        end_time = {tv_sec = 1258842485, tv_usec = 325392}
        task = <value optimized out>
#5  g_thread_pool_thread_proxy (pool=0x8cc6ea0) at gthreadpool.c:254
        task = 0xb6bf1268
        pool = 0x8cc6ea0
#6  0x004d5a40 in g_thread_create_proxy (data=<value optimized out>)
    at gthread.c:635
        thread = 0x9404058
        __PRETTY_FUNCTION__ = "g_thread_create_proxy"
#7  0x00426ab5 in start_thread (arg=<value optimized out>)
    at pthread_create.c:297
        __res = <value optimized out>
        __ignore1 = 128
        __ignore2 = 7
        pd = 0xb6bf1b70
        now = <value optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {4423668, 0, 4001536, 
                -1228991528, -1204255450, 1120431691}, mask_was_saved = 0}}, 
          priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, 
              cleanup = 0x0, canceltype = 0}}}
        not_first_call = <value optimized out>
        pagesize_m1 = <value optimized out>
        freesize = <value optimized out>
#8  0x00e7a83e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
No locals.

Thread 1 (Thread 3147):
#0  fast_validate (str=<value optimized out>) at gutf8.c:1588
        val = <value optimized out>
        min = <value optimized out>
        p = 0x0
#1  IA__g_utf8_validate (str=<value optimized out>) at gutf8.c:1756
        p = <value optimized out>
#2  0x05b9bd07 in extract_mhod_string (seek=<value optimized out>, 
    cts=0x941d398) at itdb_itunesdb.c:1320
        entry_utf16 = <value optimized out>
        entry_utf8 = <value optimized out>
        len = <value optimized out>
        string_type = <value optimized out>
#3  get_mhod (seek=<value optimized out>, cts=0x941d398)
    at itdb_itunesdb.c:1424
        result = {valid = -1077277368, type = 96045610, data = {
            track_pos = 4, string = 0x4 <Address 0x4 out of bounds>, 
            chapterdata = 0x4, splpref = 0x4, splrules = 0x4, 
            mhod52coltracks = 0x4}, mhod52sorttype = 581756, 
          mhod53_list = 0xbfca0d48}
        mhod_len = 64
        header_length = <value optimized out>
        seek = <value optimized out>
        cts = 0x941d398
        __PRETTY_FUNCTION__ = "get_mhod"
#4  0x05b9d975 in get_mhod_string (mty=<value optimized out>, 
    ml=<value optimized out>, fimp=<value optimized out>, 
    seek=<value optimized out>) at itdb_itunesdb.c:1679
        mhoddata = {valid = 1, type = 22, data = {track_pos = 155585544, 
            string = 0x9460c08 "Madonna", chapterdata = 0x9460c08, 
            splpref = 0x9460c08, splrules = 0x9460c08, 
            mhod52coltracks = 0x9460c08}, mhod52sorttype = 155240288, 
          mhod53_list = 0xbfca0de8}
        cts = <value optimized out>
#5  get_mhit (mty=<value optimized out>, ml=<value optimized out>, 
    fimp=<value optimized out>, seek=<value optimized out>)
    at itdb_itunesdb.c:2377
        zip = 4294967295
        playcount = <value optimized out>
        track = <value optimized out>
        header_len = <value optimized out>
        mhod_nums = <value optimized out>
        cts = <value optimized out>
        entry_utf8 = <value optimized out>
        i = <value optimized out>
        seek = <value optimized out>
#6  parse_tracks (mty=<value optimized out>, ml=<value optimized out>, 
    fimp=<value optimized out>, seek=<value optimized out>)
    at itdb_itunesdb.c:2731
        cts = <value optimized out>
        gl = <value optimized out>
        mhlt_seek = 0
        seek = <value optimized out>
        nr_tracks = <value optimized out>
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "parse_tracks"
#7  0x05b9e2f3 in parse_fimp (fimp=0x940c760) at itdb_itunesdb.c:2865
        cts = <value optimized out>
        mhsd_1 = <value optimized out>
        mhsd_2 = <value optimized out>
        mhsd_3 = <value optimized out>
        __PRETTY_FUNCTION__ = "parse_fimp"
#8  0x05b9e5ec in itdb_parse_internal (itdb=<value optimized out>, 
    error=<value optimized out>) at itdb_itunesdb.c:2959
        fimp = <value optimized out>
        success = 0
        __PRETTY_FUNCTION__ = "itdb_parse_internal"
#9  0x05b9f490 in itdb_parse (mp=<value optimized out>, 
    error=<value optimized out>) at itdb_itunesdb.c:3017
        success = <value optimized out>
        filename = 0x9404748 "/media/IPOD DE MIC/iPod_Control/iTunes/iTunesDB"
        itunes_dir = 0x94046d0 "/media/IPOD DE MIC/iPod_Control/iTunes"
        itdb = 0x9404790
        db = {0x5badc62 "iTunesDB", 0x0}
#10 0x03ae9c1c in rb_ipod_db_load (mount=<value optimized out>, 
    ipod_db=<value optimized out>) at rb-ipod-db.c:763
        mount_root = 0x8c53bc0
        mount_path = <value optimized out>
        info = <value optimized out>
        priv = <value optimized out>
#11 rb_ipod_db_new (mount=<value optimized out>, 
    ipod_db=<value optimized out>) at rb-ipod-db.c:795
        db = 0x8c6aa30
        __PRETTY_FUNCTION__ = "rb_ipod_db_new"
#12 0x03aef419 in rb_ipod_load_songs (source=<value optimized out>)
    at rb-ipod-source.c:935
        priv = 0x93ac1d0
        mount = 0x8c534f0
#13 rb_ipod_source_constructor (source=<value optimized out>)
    at rb-ipod-source.c:205
        songs = <value optimized out>
        db = 0x93ac1d0
#14 0x005a4292 in IA__g_object_newv (object_type=<value optimized out>, 
    n_parameters=<value optimized out>, parameters=<value optimized out>)
    at gobject.c:1252
        cparams = <value optimized out>
        oparams = <value optimized out>
        nqueue = 0x0
        object = <value optimized out>
        class = <value optimized out>
        unref_class = <value optimized out>
        slist = <value optimized out>
        n_total_cparams = <value optimized out>
        n_cparams = <value optimized out>
        n_oparams = <value optimized out>
        n_cvalues = 4
        cvalues = <value optimized out>
        clist = 0x0
        newly_constructed = 4
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__g_object_newv"
#15 0x005a4d22 in IA__g_object_new_valist (object_type=<value optimized out>, 
    first_property_name=<value optimized out>, var_args=<value optimized out>)
    at gobject.c:1364
        class = <value optimized out>
        params = <value optimized out>
        name = <value optimized out>
        object = 0x0
        n_params = <value optimized out>
        n_alloced_params = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__g_object_new_valist"
#16 0x005a4e3e in IA__g_object_new (object_type=<value optimized out>, 
    first_property_name=<value optimized out>) at gobject.c:1086
        __PRETTY_FUNCTION__ = "IA__g_object_new"
#17 0x03aed4f1 in rb_ipod_source_new (plugin=<value optimized out>, 
    shell=<value optimized out>, mount=<value optimized out>)
    at rb-ipod-source.c:286
        entry_type = 0x93faa80
        db = 0x8cc7078
        volume = 0x93faa80
        name = <value optimized out>
        path = <value optimized out>
#18 0x03af03da in create_source_cb (rmm=<value optimized out>, 
    mount=<value optimized out>, device_info=<value optimized out>, 
    plugin=<value optimized out>) at rb-ipod-plugin.c:254
        src = <value optimized out>
#19 0x0575559b in rb_marshal_OBJECT__OBJECT_OBJECT (
    closure=<value optimized out>, return_value=<value optimized out>, 
    n_param_values=<value optimized out>, param_values=<value optimized out>, 
    invocation_hint=<value optimized out>, marshal_data=<value optimized out>)
    at rb-marshal.c:512
        data1 = <value optimized out>
        data2 = <value optimized out>
        v_return = <value optimized out>
        __PRETTY_FUNCTION__ = "rb_marshal_OBJECT__OBJECT_OBJECT"
#20 0x0059d5b3 in IA__g_closure_invoke (closure=<value optimized out>, 
    return_value=<value optimized out>, n_param_values=<value optimized out>, 
    param_values=<value optimized out>, invocation_hint=<value optimized out>)
    at gclosure.c:767
        marshal = 0x5755500 <rb_marshal_OBJECT__OBJECT_OBJECT>
        marshal_data = <value optimized out>
        in_marshal = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
#21 0x005b3118 in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3247
        tmp = <value optimized out>
        handler = 0x8c9f180
        accumulator = 0x8d3e4f8
        emission = {next = 0x0, instance = 0x8d5d1a0, ihint = {
            signal_id = 374, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, 
          state = EMISSION_RUN, chain_type = 4}
        class_closure = 0x8d3e438
        handler_list = <value optimized out>
        return_accu = <value optimized out>
        accu = {g_type = 147075160, 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}}}
        signal_id = 374
        max_sequential_handler_number = 3420
        return_value_altered = <value optimized out>
#22 0x005b4308 in IA__g_signal_emit_valist (instance=<value optimized out>, 
    signal_id=<value optimized out>, detail=<value optimized out>, 
    var_args=<value optimized out>) at gsignal.c:2990
        return_value = {g_type = 147075160, 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}}}
        error = 0x0
        instance_and_params = <value optimized out>
        signal_return_type = 147075160
        param_values = <value optimized out>
        node = 0x8d3e498
        i = <value optimized out>
        n_params = 2
        __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
#23 0x005b4907 in IA__g_signal_emit (instance=<value optimized out>, 
    signal_id=<value optimized out>, detail=<value optimized out>)
    at gsignal.c:3037
No locals.
#24 0x056cad8c in rb_removable_media_manager_add_mount (mgr=0x8d5d1a0, 
    mount=0x8c534f0) at rb-removable-media-manager.c:757
        priv = <value optimized out>
        source = 0x0
        volume = <value optimized out>
        mount_root = 0x8d5d1a0
        mountpoint = <value optimized out>
        device_info = <value optimized out>
        __PRETTY_FUNCTION__ = "rb_removable_media_manager_add_mount"
        __FUNCTION__ = "rb_removable_media_manager_add_mount"
#25 0x056cb217 in rb_removable_media_manager_scan (
    manager=<value optimized out>) at rb-removable-media-manager.c:1049
        mount = 0x8c534f0
        priv = 0x8d5d1b0
        iter = {dummy1 = 0x8c8b8f0, dummy2 = 0x57c4470, dummy3 = 0x5, 
          dummy4 = 8, dummy5 = 90749596, dummy6 = 0x0}
        list = <value optimized out>
        it = <value optimized out>
        hkey = 0xbfca1730
        hvalue = 0x8c49008
#26 0x056b72a6 in _scan_idle (shell=<value optimized out>) at rb-shell.c:1309
No locals.
#27 0x004a9302 in g_idle_dispatch (source=<value optimized out>, 
    callback=<value optimized out>, user_data=<value optimized out>)
    at gmain.c:4065
No locals.
#28 0x004ab118 in g_main_dispatch (context=<value optimized out>)
    at gmain.c:1960
        dispatch = 0x4a92e0 <g_idle_dispatch>
        user_data = 0x8c49008
        callback = 0x56b7270 <_scan_idle>
        cb_funcs = 0x55c4bc
        cb_data = <value optimized out>
        current_source_link = {data = 0x93b7258, next = 0x0}
        source = 0x93b7258
        current = <value optimized out>
        i = <value optimized out>
#29 IA__g_main_context_dispatch (context=<value optimized out>)
    at gmain.c:2513
No locals.
#30 0x004aea48 in g_main_context_iterate (context=<value optimized out>, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2591
        max_priority = 200
        timeout = 0
        some_ready = 1
        nfds = <value optimized out>
        allocated_nfds = <value optimized out>
        fds = <value optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#31 0x004aeebf in IA__g_main_loop_run (loop=<value optimized out>)
    at gmain.c:2799
        self = 0x8ada038
        __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#32 0x0533eac9 in IA__gtk_main () at gtkmain.c:1218
        tmp_list = <value optimized out>
        functions = 0x0
        init = <value optimized out>
        loop = <value optimized out>
#33 0x0804b04e in main (argc=1, argv=0xbfca19a4) at main.c:332
        _save = 0x8db5808
        session_bus = <value optimized out>
        error = 0x0
        rb_shell = 0x8c49008
        activated = <value optimized out>
        accel_map_file = 0x8af6b20 "/home/michael/.gnome2/accels/rhythmbox"
        desktop_file_path = <value optimized out>
        context = <value optimized out>
        options = {{long_name = 0x804c8c1 "debug", short_name = 100 'd', 
            flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x804f508, 
            description = 0x804c8c7 "Enable debug output", 
            arg_description = 0x0}, {long_name = 0x804c8db "debug-match", 
            short_name = 68 'D', flags = 0, arg = G_OPTION_ARG_STRING, 
            arg_data = 0x804f50c, 
            description = 0x804ca94 "Enable debug output matching a specified string", arg_description = 0x0}, {long_name = 0x804c8e7 "no-update", 
            short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, 
            arg_data = 0x804f524, 
            description = 0x804cac4 "Do not update the library with file changes", arg_description = 0x0}, {long_name = 0x804c8f1 "no-registration", 
            short_name = 110 'n', flags = 0, arg = G_OPTION_ARG_NONE, 
            arg_data = 0x804f510, 
            description = 0x804c901 "Do not register the shell", 
            arg_description = 0x0}, {long_name = 0x804c91b "dry-run", 
            short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, 
            arg_data = 0x804f520, 
            description = 0x804caf0 "Don't save any data permanently (implies --no-registration)", arg_description = 0x0}, {
            long_name = 0x804c923 "rhythmdb-file", short_name = 0 '\000', 
            flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x804f51c, 
            description = 0x804c931 "Path for database file to use", 
            arg_description = 0x0}, {long_name = 0x804c94f "playlists-file", 
            short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, 
            arg_data = 0x804f518, 
            description = 0x804cb2c "Path for playlists file to use", 
            arg_description = 0x0}, {long_name = 0x804c7b0 "quit", 
            short_name = 113 'q', flags = 0, arg = G_OPTION_ARG_NONE, 
            arg_data = 0x804f514, description = 0x804c95e "Quit Rhythmbox", 
            arg_description = 0x0}, {long_name = 0x804c6ca "", 
            short_name = 0 '\000', flags = 0, 
            arg = G_OPTION_ARG_STRING_ARRAY, arg_data = 0x804f528, 
            description = 0x0, arg_description = 0x804c96d "[URI...]"}, {
            long_name = 0x0, short_name = 0 '\000', flags = 0, 
            arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, 
            arg_description = 0x0}}
        __FUNCTION__ = "main"

Comment 1 Bastien Nocera 2009-11-25 12:57:55 UTC
Crashes reading the iPod database in libgpod.

#2  0x05b9bd07 in extract_mhod_string (seek=<value optimized out>, 
    cts=0x941d398) at itdb_itunesdb.c:1320
        entry_utf16 = <value optimized out>
        entry_utf8 = <value optimized out>
        len = <value optimized out>
        string_type = <value optimized out>

Could you please make your database available somewhere to replicate the problem? Which exact version of libgpod are you using?

Comment 2 michael 2009-11-25 20:41:45 UTC
My libgpod version is 0.7.2

http://dl.dropbox.com/u/1186261/rhythmdb.xml

Comment 3 Bastien Nocera 2009-12-08 18:01:44 UTC
(In reply to comment #2)
> My libgpod version is 0.7.2

That's not the exact version. Use "rpm -q libgpod"

> http://dl.dropbox.com/u/1186261/rhythmdb.xml  

That's not the iPod database, but Rhythmbox' one. Look for a file named something like "iTunesDB" on your iPod.

Comment 4 Bastien Nocera 2009-12-10 15:15:28 UTC

*** This bug has been marked as a duplicate of bug 542176 ***


Note You need to log in before you can comment on or make changes to this bug.