Bug 517642
Summary: | rhythmbox crashes when started with connected ipod (assertion failed: g_utf8_validate ) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Ales Zelinka <azelinka> | ||||||
Component: | libgpod | Assignee: | Bastien Nocera <bnocera> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | low | ||||||||
Version: | rawhide | CC: | bnocera, mclasen, sawrub, tmz | ||||||
Target Milestone: | --- | Keywords: | Reopened | ||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | 0.7.0-4.fc11 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2009-10-20 15:43:04 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 473303 | ||||||||
Attachments: |
|
Description
Ales Zelinka
2009-08-15 14:24:44 UTC
Created attachment 357542 [details]
log from terminal
Could we please get a stacktrace? ping. we really need a stacktrace here. Ow, sorry for the delay, I've overlooked the first request. Here it is. Program terminated with signal 6, Aborted. #0 0x00007f17a267f575 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); Thread 1 (Thread 21314): #0 0x00007f17a267f575 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 pid = <value optimized out> selftid = <value optimized out> #1 0x00007f17a2680d55 in abort () at abort.c:92 act = {__sigaction_handler = {sa_handler = 0x7f17a29c6d78 <stderr>, sa_sigaction = 0x7f17a29c6d78 <stderr>}, sa_mask = {__val = {2048, 1024, 2048, 51646752, 139739491698897, 139739485514488, 139739569023384, 51691024, 4294967295, 1, 5, 3032328, 0, 140735750645040, 25079888, 139739491340288}}, sa_flags = -1488931215, sa_restorer = 0x7f1700000005} sigs = {__val = {32, 0 <repeats 15 times>}} #2 0x00007f17a2c3fd0f in IA__g_assertion_message ( domain=<value optimized out>, file=0x7f17a71b6215 "rhythmdb.c", line=<value optimized out>, func=0x7f17a71b5bc0 "rhythmdb_entry_set_internal", message=0x314bd20 "assertion failed: (g_utf8_validate (g_value_get_string (value), -1, NULL))") at gtestutils.c:1301 lstr = "3449\000\177\000\000\b\225\276\242\027\177\000\000\002\000\000\000\000\000\000\000\310s\033\247\027\177\000" #3 0x00007f17a2c402b0 in IA__g_assertion_message_expr ( domain=0x7f17a71c4f9c "RhythmDB", file=0x7f17a71b6215 "rhythmdb.c", line=3449, func=0x7f17a71b5bc0 "rhythmdb_entry_set_internal", expr=<value optimized out>) at gtestutils.c:1312 No locals. #4 0x00007f17a71532d9 in rhythmdb_entry_set_internal (db=0x187a100, entry=0x314b900, notify_if_inserted=<value optimized out>, propid=2, value=0x7fff986ca650) at rhythmdb.c:3449 klass = <value optimized out> handled = <value optimized out> old_value = {g_type = 64, data = {{v_int = 51690752, v_uint = 51690752, v_long = 51690752, v_ulong = 51690752, v_int64 = 51690752, v_uint64 = 51690752, v_float = 4.37102523e-37, v_double = 2.5538624770899706e-316, v_pointer = 0x314bd00}, {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" #5 0x00007f17855cc021 in entry_set_string_prop (db=0x187a100, entry=0x314b900, propid=RHYTHMDB_PROP_TITLE, str=0x29fd6c0 "\357\277\276") at rb-ipod-source.c:311 value = {g_type = 64, data = {{v_int = 44029632, v_uint = 44029632, v_long = 44029632, v_ulong = 44029632, v_int64 = 44029632, v_uint64 = 44029632, v_float = 2.34862107e-37, v_double = 2.1753528570232416e-316, v_pointer = 0x29fd6c0}, { v_int = 134217728, v_uint = 134217728, v_long = 134217728, v_ulong = 134217728, v_int64 = 134217728, v_uint64 = 134217728, v_float = 3.85185989e-34, v_double = 6.631236846766476e-316, v_pointer = 0x8000000}}} #6 0x00007f17855cc208 in add_ipod_song_to_db (source=0x23401c0, db=0x187a100, song=0x29fd390) at rb-ipod-source.c:667 entry = 0x314b900 entry_type = 0x211f750 priv = 0x2340340 pc_path = 0x29fd6c0 "\357\277\276" mount_path = <value optimized out> __FUNCTION__ = "add_ipod_song_to_db" #7 0x00007f17855cd35f in load_ipod_db_idle_cb (source=0x23401c0) at rb-ipod-source.c:911 db = 0x187a100 it = 0x2b2c8e0 priv = <value optimized out> __PRETTY_FUNCTION__ = "load_ipod_db_idle_cb" #8 0x00007f17a2c1a2ae in g_main_dispatch (context=<value optimized out>) at gmain.c:1960 dispatch = 0x7f17a2c18470 <g_idle_dispatch> user_data = 0x23401c0 callback = 0x7f17855cd2f0 <load_ipod_db_idle_cb> cb_funcs = 0x7f17a2ec5a70 cb_data = 0x24f0a90 current_source_link = {data = 0x2bfd750, next = 0x0} source = 0x2bfd750 current = 0x17ca910 i = 11 #9 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2513 No locals. #10 0x00007f17a2c1dc98 in g_main_context_iterate (context=0x173ced0, 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 = 14 allocated_nfds = -1564301600 fds = <value optimized out> __PRETTY_FUNCTION__ = "g_main_context_iterate" #11 0x00007f17a2c1e0e5 in IA__g_main_loop_run (loop=0x247b0c0) at gmain.c:2799 self = 0x15d4060 __PRETTY_FUNCTION__ = "IA__g_main_loop_run" #12 0x00007f17a6319bb7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0 No symbol table info available. #13 0x0000000000403a85 in main (argc=1, argv=0x7fff986cabc8) at main.c:332 _save = 0x1a033b0 session_bus = <value optimized out> error = 0x0 rb_shell = 0x176d2a0 activated = <value optimized out> accel_map_file = 0x15da640 "/home/zelial/.gnome2/accels/rhythmbox" desktop_file_path = <value optimized out> context = <value optimized out> options = {{long_name = 0x405445 "debug", short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x607750, description = 0x40544b "Enable debug output", arg_description = 0x0}, {long_name = 0x40545f "debug-match", short_name = 68 'D', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x607758, description = 0x405628 "Enable debug output matching a specified string", arg_description = 0x0}, {long_name = 0x40546b "no-update", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x60777c, description = 0x405658 "Do not update the library with file changes", arg_description = 0x0}, {long_name = 0x405475 "no-registration", short_name = 110 'n', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x607760, description = 0x405485 "Do not register the shell", arg_description = 0x0}, {long_name = 0x40549f "dry-run", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x607778, description = 0x405688 "Don't save any data permanently (implies --no-registration)", arg_description = 0x0}, { long_name = 0x4054a7 "rhythmdb-file", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x607770, description = 0x4054b5 "Path for database file to use", arg_description = 0x0}, {long_name = 0x4054d3 "playlists-file", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x607768, description = 0x4056c8 "Path for playlists file to use", arg_description = 0x0}, {long_name = 0x405334 "quit", short_name = 113 'q', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x607764, description = 0x4054e2 "Quit Rhythmbox", arg_description = 0x0}, {long_name = 0x40524e "", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING_ARRAY, arg_data = 0x607780, description = 0x0, arg_description = 0x4054f1 "[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" The iTunesDB contains non-UTF-8 data that libgpod will pass to Rhythmbox (which rightfully asserts, libgpod is supposed to only pass UTF-8 data). Could you please make your iTunesDB file available? You can make it available internally as well, if you don't want to share it. This is a bug in libgpod using g_utf16_to_utf8() without doing any validation on a string with a BOM. Christophe Fergeau is looking into it, IIRC. Could you please test the packages at: http://koji.fedoraproject.org/koji/buildinfo?buildID=137008 And see if it fixes the crasher? It is fixed, thanks. I can start rhythmbox with ipod plugged in. Fixed in F-12, with tag requested. http://koji.fedoraproject.org/koji/buildinfo?buildID=137246 rawhide done as well, F-11 will be in the updates-testing shortly. libgpod-0.7.0-3.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/libgpod-0.7.0-3.fc11 The patch makes it not crash, but it doesn't load properly any more. Please attach the output of "rhythmbox -D ipod" and make sure the iPod plugin is enabled. $ rhythmbox -D ipod (15:20:04) [0x1cd4060] [register_rb_plugin] rb-ipod-plugin.c:102: Registering plugin RBIpodPlugin (15:20:04) [0x1cd4060] [rb_ipod_plugin_init] rb-ipod-plugin.c:144: RBIpodPlugin initialising (rhythmbox:12863): Rhythmbox-DEBUG: Received SaveYourself(SmSaveLocal, !Shutdown, SmInteractStyleNone, !Fast) in state idle (rhythmbox:12863): Rhythmbox-DEBUG: Setting initial properties (rhythmbox:12863): Rhythmbox-DEBUG: Sending SaveYourselfDone(True) for initial SaveYourself (rhythmbox:12863): Rhythmbox-DEBUG: Received SaveComplete message in state save-yourself-done <--- Here I right-clicked the ipod device in RB and selected "properties". 2x (15:20:16) [0x1cd4060] [rb_ipod_source_show_properties] rb-ipod-source.c:1637: can't show ipod properties with no ipod db (15:20:27) [0x1cd4060] [rb_ipod_source_show_properties] rb-ipod-source.c:1637: can't show ipod properties with no ipod db <--- quiting RB (15:20:46) [0x1cd4060] [rb_ipod_plugin_finalize] rb-ipod-plugin.c:152: RBIpodPlugin finalising Please test with this version installed: http://koji.fedoraproject.org/koji/buildinfo?buildID=137266 And make sure the iPod plugin is enabled. Created attachment 365242 [details]
log captured with libgpod-0.7.2-4.fc12.x86_64 installed
The patch wasn't applied properly. This build fixes that: http://koji.fedoraproject.org/koji/buildinfo?buildID=137295 Works in my local tests on your iPod database. And works with my RB too! No crashes and instantaneous library and playlists import. Thanks. Fixed in rawhide, should get into F11 shortly: http://admin.fedoraproject.org/updates/libgpod-0.7.0-4.fc11 libgpod-0.7.0-4.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report. when is it coming to F12.I'm facing the issue in F12 too.. |