Ticket #3442 (closed defect: fixed)

Opened 15 months ago

Last modified 15 months ago

Change of status while rhythmbox is on induce crash

Reported by: fluo Owned by: asterix
Priority: normal Milestone: 0.11.2
Component: usability Version: svn
Severity: normal Keywords: Rhythmbox, status
Cc: OS: Unix

Description

I get this error after my status autoswitch from away to available. The "reflect the music I play" stuff seems to be in cause. If I don't turn it off, Rhythmbox restarts everytime I close the message and the error reappears.

Traceback (most recent call last):
  File "/home/matt/gajim/src/roster_window.py", line 3707, in _music_track_changed
    self.send_status(account, current_show, status_message)
  File "/home/matt/gajim/src/roster_window.py", line 3472, in send_status
    gajim.connections[account].change_status(status, txt, auto)
  File "/home/matt/gajim/src/common/connection.py", line 749, in change_status
    signed = self.get_signed_msg(msg)
  File "/home/matt/gajim/src/common/connection.py", line 686, in get_signed_msg
    signed = self.gpg.sign(msg, keyID)
  File "/home/matt/gajim/src/common/GnuPG.py", line 123, in sign
    proc = self.run(['-b', '-u %s'%keyID], create_fhs=['stdin', 'stdout', 'status', 'stderr'])
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 617, in _signal_func
    if match.maybe_handle_message(message):
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 210, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/home/matt/gajim/src/music_track_listener.py", line 143, in _rhythmbox_music_track_change_cb
    props = rbshell.getSongProperties(uri)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 85, in __call__
    return self._proxy_method(*args, **keywords)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 169, in __call__
    reply_message = self._connection.send_message_with_reply_and_block(message, timeout)
DBusException: org.freedesktop.DBus.GLib.UnmappedError.RbShellError.Code0: Unknown song URI:

Attachments

Change History

Changed 15 months ago by asterix

hmm I don't really understand you seems to say that rhythmbox crashes ? That's not our bug I think, as we don't talk to it, we just listen to its messages. What where you listening to ? radio ? files on your hard disk?

I tried and can't reproduce. As you use svn, could you please add a "print uri" line in music_track_listener.py, line 143, just before "props = rbshell.getSongProperties(uri)" and tell me what is printed just before the traceback?

Changed 15 months ago by anonymous

no, it's not rhythmbox, it's gajim. I try to explain it again: I use to put the " I was listenning some music (audio files from my disk) and went away for a while. The status of gajim turned consequently to "away". As soon as I got back and touched the mouse I received the error message in a pop up. I tried to close the bug window but it kept coming back. I tried to turn off Rhythmbox but it kept coming back too! I unticked the "reflect the music I play" option and all went well: no more message and Rhythmbox turned off for good. For now gajim is not on and it's quiet late, but i'll post some more info tomorrow.

Changed 15 months ago by anonymous

Here is the traceback:
Rhythmbox is running, the "reflect my music on my status" option is on. I close rhythmbox, then I get the "a programming error has been detected" message, I close the message, rhythmbox opens again.
To get rid of this message and rhythmbox I have to close gajim or disable the status+music option.
Strangely rhythmbox doesn't restart whent i start gajim by the command line (cd ~/gajim + ./launch.sh) but only when i use a launcher in xfce (~/gajim/launch.sh). I don't get it.

matt@clyde:~/gajim$ ./launch.sh
/var/lib/python-support/python2.5/dbus/service.py: inconsistent use of tabs and spaces in indentation
Requires docutils 0.4 for set_classes to be available
===============================================================================
PyOpenSSL not found, falling back to Python builtin SSL objects (insecure).
===============================================================================
Network Manager support not available
/home/matt/gajim/src/systray.py:36: DeprecationWarning: the module egg.trayicon is deprecated; equivalent functionality can now be found in pygtk 2.10
  import egg.trayicon as trayicon       # gnomepythonextras trayicon
file:///home/matt/Desktop/../../../media/hdd1/Music/B/Beck/Mellow%20Gold/01%20-%20Loser.flac

Traceback (most recent call last):
  File "/home/matt/gajim/src/roster_window.py", line 3727, in _music_track_changed
    self.send_status(account, current_show, status_message)
  File "/home/matt/gajim/src/roster_window.py", line 3492, in send_status
    gajim.connections[account].change_status(status, txt, auto)
  File "/home/matt/gajim/src/common/connection.py", line 749, in change_status
    signed = self.get_signed_msg(msg)
  File "/home/matt/gajim/src/common/connection.py", line 686, in get_signed_msg
    signed = self.gpg.sign(msg, keyID)
  File "/home/matt/gajim/src/common/GnuPG.py", line 123, in sign
    proc = self.run(['-b', '-u %s'%keyID], create_fhs=['stdin', 'stdout', 'status', 'stderr'])
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 617, in _signal_func
    if match.maybe_handle_message(message):
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 210, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/home/matt/gajim/src/music_track_listener.py", line 144, in _rhythmbox_music_track_change_cb
    props = rbshell.getSongProperties(uri)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 85, in __call__
    return self._proxy_method(*args, **keywords)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 169, in __call__
    reply_message = self._connection.send_message_with_reply_and_block(message, timeout)
dbus.DBusException: org.freedesktop.DBus.GLib.UnmappedError.RbShellError.Code0: Unknown song URI:

Introspect error: Message did not receive a reply (timeout by message bus)
Traceback (most recent call last):
  File "/home/matt/gajim/src/roster_window.py", line 3727, in _music_track_changed
    self.send_status(account, current_show, status_message)
  File "/home/matt/gajim/src/roster_window.py", line 3492, in send_status
    gajim.connections[account].change_status(status, txt, auto)
  File "/home/matt/gajim/src/common/connection.py", line 749, in change_status
    signed = self.get_signed_msg(msg)
  File "/home/matt/gajim/src/common/connection.py", line 686, in get_signed_msg
    signed = self.gpg.sign(msg, keyID)
  File "/home/matt/gajim/src/common/GnuPG.py", line 123, in sign
    proc = self.run(['-b', '-u %s'%keyID], create_fhs=['stdin', 'stdout', 'status', 'stderr'])
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 617, in _signal_func
    if match.maybe_handle_message(message):
  File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 210, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/home/matt/gajim/src/music_track_listener.py", line 144, in _rhythmbox_music_track_change_cb
    props = rbshell.getSongProperties(uri)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 85, in __call__
    return self._proxy_method(*args, **keywords)
  File "/var/lib/python-support/python2.5/dbus/proxies.py", line 169, in __call__
    reply_message = self._connection.send_message_with_reply_and_block(message, timeout)
dbus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.201 was not provided by any .service files

Changed 15 months ago by asterix

ok, this sounds like an encoding problem. Your file name is "Mellow%20Gold/01%20-%20Loser.flac" Which contains strange characters.

So I see only one solution, when there are such unknown chars, ignore the song change.

Changed 15 months ago by fluo

The problem appears with any kind of files (at least flac, mp3 and ogg), and I'm sure my tags and filenames don't contain any messy characters. The track was actually called "...Beck/Mellow Gold/01 - Loser.flac". Gajim turned the spaces into "%20"

Changed 15 months ago by lirel

I'm using gajim 0.11.1 on (amd64)gentoo i remember having the same problem: even using gnome's "the app doesn't react anymore. kill it?"-tool for rhythmbox didn't work, because it just was started again. looks like dbus prevents it from being closed, if so it might be reproducable by other apps.

Changed 15 months ago by asterix

it's not Gajim that turns spaces to %20, we get the URI of the file by rhythmbox, in a callback, then we ask rhythmbox info about this file.

So once again the only solution I see is to catch this exception and ignore it, but song change won't work for you. Maybe a dbus or rhythmbox version pb ...

Changed 15 months ago by asterix

I can reproduce this pb by manualy closing rhythmbox while Gajim is running

Changed 15 months ago by asterix

  • status changed from new to closed
  • resolution set to fixed
  • milestone changed from 0.11.2 to 0.12

(In [8835]) don't crash when we close rhythmbox while Gajim is running. fixes #3442

Changed 15 months ago by asterix

please try latest svn and tell me if that still fails or not. Reopen if needed

Changed 15 months ago by asterix

(In [8841]) don't crash when we close rhythmbox while Gajim is running. fixes #3442

Changed 15 months ago by asterix

  • milestone changed from 0.12 to 0.11.2

Add/Change #3442 (Change of status while rhythmbox is on induce crash)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.