Bug#355238: rhythmbox: A user cannot see why he cannot "share" music

Javier Fernández-Sanguino Peña jfs at computer.org
Mon Mar 10 22:59:49 UTC 2014


On Mon, Mar 10, 2014 at 10:51:37AM +0100, Emilio Pozuelo Monfort wrote:
> On 10/03/14 01:49, Javier Fernández-Sanguino Peña wrote:
> > On Thu, Mar 06, 2014 at 02:22:25PM +0000, althaser wrote:
> >> Hey,
> >>
> >> Could you please still reproduce this issue with newer rhythmbox version
> >> like 2.97-2.1 or 3.0.1-1+b2 ?
> > 
> > I have 3.0.1-1+b1 installed but I'm unable to find the "Preferences" in order
> > to setup sharing in the GUI. Where is it now?
> 
> I suppose you're using gnome shell. If so, it is in the top panel, just click on
> "Rhythmbox" there (many app menus have been moved or are being moved there).

Thanks. I was not aware of this.

I have done some testing and I believe the issue is *not* yet fixed. If you
cannot use the MDNS services Rhythmbox will not warn the user that he cannot
"Share" the music, it just outpus errors to stderr.

With this bug in mind I have tried three different scenarios (in version
3.0.1-1+b1 and also in 3.0.1-1+b2) of starting up rhythmbox and then trying
to configure the "DAAP Music Server" Plugin from the "Plugins" menu.

These are the scenarios:

1.- avahi-daemon installed and running

2.- avahi-daemon installed but the service stopped
('/etc/init.d/avahi-daemon stop' befor starting rhythmbox)

3.- avahi-daemon not installed (removed using 'dpkg --force-depends
avahi-daemon')

I have also a network packet trace configured as follows:
 tcpdump -ni eth0 port 47649 or port 5353

These scenarios should be easy to reproduce in any other system. I describe
my experiences below.

First case: avahi-daemon installed
----------------------------------

In the first case, it works as (I guess) is expected. I can enable and
disable the plugin and enable "Music sharing" or disable it. No error is
presented on screen or on stderr.

In the network packet trace I can see multicast packets sent to port .5353
announcing the new service

22:52:32.529594 IP6 fe80::1278:d2ff:fe4f:fd6a.5353 > ff02::fb.5353: 0*- [0q] 9/0/0 PTR _daap._tcp.local., PTR 94F42F7194F4._touch-able._tcp.local., (Cache flush) SRV [.....]

22:52:32.529674 IP 192.168.1.2.5353 > 224.0.0.251.5353: 0*- [0q] 10/0/0 PTR _daap._tcp.local., PTR 94F42F7194F4._touch-able._tcp.local., (Cache flush) SRV  [....] 

Second scenario: avahi-daemon installed but not running
------------------------------------------------------

In the second scenario, I force the avahi daemon to stop before starting
rhythmbox. In rhythmbox I go to --> Plugins --> DAAP Plugin and try to
manually enable the plugin and start to share "My music":

when rhythmbox starts is outputs to stderr the following error:

(rhythmbox:28489): libdmapsharing-WARNING **: Unable to notify network of
media sharing: The avahi MDNS service is not running

It actually takes quite a lot more time to start than if the service is
running.

There are two situations in this scenario:

 - If the checkbox for the plugin was already *enabled* I can configure the
   preferences and start sharing the music. However:
   
     * no packets leaves the system (as expected)

     * there is *no* indication in the UI that the functionality is not going
       to work

     * there are two messages in STDERR that warn about this:

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to start Remote lookup: MDNS service is not running

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to stop Remote lookup: MDNS service is not running

  - If the checkbox for the plugin is *disabled* and I try to enable it
    before configuring then:

        * rhythmbox blocks for quite some time and GNOME offers to kill the
         program (See attached screen capture
         'rhythmbox-daap-plugin-error-avahi_stopped_program_blocked.png')

        * no prompt is presented to the user indicating that the plugin
          cannot be enabled

        * many errors are presented in stderr (see attached file
          'enable-daap-plugin_avahi_stopped_stderr.log')

        * after a (long) time, rhythmbox eventually unfreezes and the 
          DAAP plugin is enabled. I can then go to the plugin preferences
          menu and enable music sharing which, of course, does nothing


Third case: avahi-daemon is not installed
--------------------------------------

In this case, the avahi-daemon is not installed at all.

As above, when rhythmbox starts is outputs an error to stderr related to the
avahi MDNS service.

Once started, if you go to Plugins --> DAAP Plugin and try to enable or disable
the plugin (check / uncheck it):

    - No network packets are sent (as expected, avahi is not running)

    - No prompt is shown to the user indicating that the plugin is *never*
      going to work

    - Stderr shows some errors (see attached log file:
      enable-daap-plugin_avahi_not_installed_stderr.log)

I have not seen the program freeze (as in the previous scenario). But it
looks like its working and doing something, when it clearly can't.

I'm attaching a screen capture of the desktop, as shown in my system, for
this case. As you can see, I can mark/unmark the "Share my music" and the
gnome terminal background (from which rhythmbox was launched) shows the
stderr errors. (File:
'rhythmbox-plugin-daap-configure-avahi-not-installed.png')

-------------------------------------------------------------------------

From an end-user perspective, I would expect rhythmbox to:

  a) not let the user enable "DAAP Music Plugin" if it cannot work

  b) warn the user through a nice UI message (not stderr) if he tries to
  enable, telling him that the service required for sharing is not available
  and he has to either 

       1.- start it (if installed, but not running) 
       or 
       2.- install the daemon (if not installed)


Hope this helps!


Javier



-------------- next part --------------
A non-text attachment was scrubbed...
Name: rhythmbox-daap-plugin-error-avahi_stopped_program_blocked.png
Type: image/png
Size: 94034 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20140310/c99e981f/attachment-0002.png>
-------------- next part --------------

(rhythmbox:26856): Rhythmbox-WARNING **: Unable to start mDNS browsing: MDNS
service is not running

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to notify network of
media sharing: Could not create AvahiEntryGroup for publishing

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to notify network of
media sharing: Could not create AvahiEntryGroup for publishing

(rhythmbox:26856): Rhythmbox-WARNING **: Unable to stop mDNS browsing: MDNS
service is not running

(rhythmbox:26856): Rhythmbox-WARNING **: Unable to start mDNS browsing: MDNS
service is not running

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to notify network of
media sharing: Could not create AvahiEntryGroup for publishing

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:26856): libdmapsharing-WARNING **: Unable to notify network of
media sharing: Could not create AvahiEntryGroup for publishing

(rhythmbox:26856): Rhythmbox-WARNING **: Unable to stop mDNS browsing: MDNS
service is not running


-------------- next part --------------
A non-text attachment was scrubbed...
Name: rhythmbox-plugin-daap-configure-avahi-not-installed.png
Type: image/png
Size: 208914 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20140310/c99e981f/attachment-0003.png>
-------------- next part --------------

(rhythmbox:28489): Rhythmbox-WARNING **: Unable to start mDNS browsing: MDNS
service is not running

(rhythmbox:28489): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:28489): libdmapsharing-WARNING **: Unable to notify network of
media sharing: The avahi MDNS service is not running

(rhythmbox:28489): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:28489): GLib-GObject-CRITICAL **: Custom constructor for class
SoupServer returned NULL (which is invalid).  Unable to remove object from
construction_objects list, so memory was probably just leaked.  Please use
GInitable instead.

(rhythmbox:28489): libdmapsharing-WARNING **: Unable to notify network of
media sharing: The avahi MDNS service is not running

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20140310/c99e981f/attachment-0001.sig>


More information about the pkg-gnome-maintainers mailing list