After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 678349 - Rhythmbox segfaults when trying to access Android 4.0 MTP device already mounted by Nautilus
Rhythmbox segfaults when trying to access Android 4.0 MTP device already moun...
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Removable Media
HEAD
Other Linux
: High critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-06-18 18:28 UTC by Tristian Celestin
Modified: 2016-03-09 12:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tristian Celestin 2012-06-18 18:28:48 UTC
Using Fedora 17 and Rhythmbox checkout 0a606d1e

Description:
Upon detecting an MTP device for the first time, Rhythmbox will attempt to gain exclusive access by causing gvfs to unmount the device. However, if gvfs re-mounts the device, attempting to access the device in Rhythmbox will lead to a segfault.

Steps to Reproduce:
1. Plug in device. Unmount the device if it proceeds to mount. Ensure the device is unlocked and remains unlocked throughout the steps.
2. Open a Nautilus window
3. Open Rhythmbox
4. In Rhythmbox, click on the device "Media Player" in the left-hand column
5. In Rhythmbox, wait for the "Media Player" label to be replaced by the real name of the device and for the music browser to be populated
6. In Nautilus, mount the device 
7. In Rhythmbox, click on a song on the device in the music browser

Expected Results:
Either the device should be unmounted from Nautilus again, or Rhythmbox should do something to indicate that the device can't be accessed.

Received Results:
Rhythmbox cycles through all the songs on the MTP device, failing to play each one. When it has cycled through all the songs in the browser, it segfaults.
Comment 1 Jonathan Matthew 2012-06-18 21:25:19 UTC
Thanks for taking the time to report this bug.
Without a stack trace from the crash it's very hard to determine what caused it.
Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 2 Tristian Celestin 2012-06-18 22:29:50 UTC
What follows is the requested stack trace:


  • #0 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 __GI_abort
    at abort.c line 91
  • #2 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 198
  • #3 malloc_printerr
  • #4 _int_free
    at malloc.c line 3948
  • #5 g_free
    at gmem.c line 252
  • #6 g_error_free
    at gerror.c line 476
  • #7 rb_mtp_src_finalize
    at rb-mtp-gst-src.c line 378
  • #8 g_object_unref
    at gobject.c line 3018
  • #9 gst_object_unref
    at gstobject.c line 339
  • #10 gst_message_finalize
    at gstmessage.c line 198
  • #11 gst_mini_object_free
    at gstminiobject.c line 376
  • #12 gst_mini_object_unref
    at gstminiobject.c line 411
  • #13 gst_message_unref
    at ../gst/gstmessage.h line 347
  • #14 gst_bus_source_dispatch
    at gstbus.c line 765
  • #15 g_main_dispatch
    at gmain.c line 2539
  • #16 g_main_context_dispatch
    at gmain.c line 3075
  • #17 g_main_context_iterate
    at gmain.c line 3146
  • #18 g_main_context_iteration
    at gmain.c line 3207
  • #19 g_application_run
    at gapplication.c line 1507
  • #20 main
    at main.c line 99

Comment 3 Tristian Celestin 2012-06-18 23:07:50 UTC
In the process of acquiring the stack trace, I also received the message:

*** glibc detected *** $(HOME)/rhythmbox-devel/bin/rhythmbox: double free or corruption (out): 0x00007fffd402fd10 ***
Comment 4 Tristian Celestin 2012-06-20 01:08:45 UTC
I apologize for not reading the whole of http://live.gnome.org/GettingTraces. What follows is a stack trace generated with "threads apply all bt" instead of bt.

 Thread 68 (Thread 0x7fff4a7f4700 (LWP 1925)):

Thread 1 (Thread 0x7ffff73e59c0 (LWP 1838))

  • #0 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 __GI_abort
    at abort.c line 91
  • #2 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 198
  • #3 malloc_printerr
  • #4 _int_free
    at malloc.c line 3948
  • #5 g_free
    at gmem.c line 252
  • #6 g_error_free
    at gerror.c line 476
  • #7 rb_mtp_src_finalize
    at rb-mtp-gst-src.c line 378
  • #8 g_object_unref
    at gobject.c line 3018
  • #9 gst_object_unref
    at gstobject.c line 339
  • #10 gst_message_finalize
    at gstmessage.c line 198
  • #11 gst_mini_object_free
    at gstminiobject.c line 376
  • #12 gst_mini_object_unref
    at gstminiobject.c line 411
  • #13 gst_message_unref
    at ../gst/gstmessage.h line 347
  • #14 gst_bus_source_dispatch
    at gstbus.c line 765
  • #15 g_main_dispatch
    at gmain.c line 2539
  • #16 g_main_context_dispatch
    at gmain.c line 3075
  • #17 g_main_context_iterate
    at gmain.c line 3146
  • #18 g_main_context_iteration
    at gmain.c line 3207
  • #19 g_application_run
    at gapplication.c line 1507
  • #20 main
    at main.c line 99

Comment 5 Jonathan Matthew 2016-03-09 12:53:36 UTC
Closing this because rhythmbox now accesses android devices via the gvfs mount, so this shouldn't be an issue.