Panflute fails to display song information with non-latin letters in file name

Bug #485279 reported by Fake Name
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Panflute
Fix Released
High
Paul Kuliniewicz

Bug Description

When changing songs, panflute freezes when song information contain weird characters (ie. non-latin letters). It keeps on showing the info from previous song. Everything else keeps on working (song status, time), although it is possible to pause the song with the applet, it ain't possible to resume playing (with the applet). This also somehow breaks the player (freezes, usually requires killing). The results are different when starting to play with such a song. The applet displays 'Not Playing', while the time changes and it's possible to pause and resume playing with the stop button.

Using latest trunk (r292) with Rhythmbox on Ubuntu Karmic. I'm not sure whether it's the same case as #476500, as the circumstances are different, as well as the cause of the problem.

Tags: applet

Related branches

Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

Forgot to attach output. From applet.stderr:

  File "/usr/lib/python2.6/dist-packages/panflute/applet/widget.py", line 378, in do_destroy
    if self.__update_source is not None:
AttributeError: 'MetadataScroller' object has no attribute '_Scroller__update_source'

Changed in panflute:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Paul Kuliniewicz (kuliniew)
milestone: none → 0.6.0
tags: added: applet
Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

I don't think this necessarily has anything to do with non-Latin characters in metadata, but it is definitely related to the attempted fix to lp:476500.

Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

The root cause of this seems to be that overriding do_destroy caused the handler to somehow get run even after the object was completely destroyed. I replaced it with an destroy signal handler, and that seems to have fixed the problem.

Changed in panflute:
status: In Progress → Fix Committed
Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

Panflute still hangs on characters like Я. So it doesn't really seem fixed (using the latest r293 of course)

Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

OK, then the exception trace and the non-Latin thing are two separate problems, and the last check-in only fixed the former.

Changed in panflute:
status: Fix Committed → In Progress
Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

I forgot to ask: which player are you using, and which version? The problem is most likely in the handling on non-Latin characters from that particular player.

Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

I use Rhythmbox 0.12.5 on Ubuntu Karmic x86_64. I know that this has worked nicely in music-applet (just checked with 2.5.0).

Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

I just tried it with Banshee 1.5.1 and it seems to work with no problems in Panflute.

Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

This could be an instance of lp:483120, where a song with malformed metadata causes exceptions to get thrown, resulting in the daemon and applet getting out of sync with each other. Try the latest trunk and see if that solves the problem.

If not, try this: Remove the applet from the panel, kill any panflute-daemon that may be running, start it from the command line with the -d (debug) flag, and then reload the applet and reproduce the problem. The daemon's debugging output should indicate where the problem is occuring. I couldn't reproduce the problem with the songs with non-Latin characters in my Rhythmbox library.

Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

It didn't solve the problem, so here's the output (see panflute-deamon-1)

summary: - Panflute fails to display song information with non-latin letters
+ Panflute fails to display song information with non-latin letters in
+ file name
Changed in panflute:
status: In Progress → Fix Committed
Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

It still doesn't seem to be fixed unfortunately. Even though it works with Banshee on the very same files, it doesn't with Rhythmbox (using r295 of panflute).

Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

Can you tell me what Rhythmbox is reporting as the song's cover art file? Do the following at the command line, when Rhythmbox is paused on a song that triggers this bug:

1. dbus-send --session --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox/Player org.gnome.Rhythmbox.Player.getPlayingUri

2. dbus-send --session --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox/Shell org.gnome.Rhythmbox.Shell.getSongProperties string:'file:///the/uri/that/step/one/returned'

The second command will dump a lot of stuff; look for rb:coverArt or rb:coverArt-uri in the output. That will be the location of the artwork triggering the bug. (In particular, Python's URL libraries don't play nicely with the non-8-bit strings Rhythmbox sometimes returns.)

Revision history for this message
Fake Name (fakeuserxxxx-deactivatedaccount) wrote :

This:
      dict entry(
         string "rb:coverArt-uri"
         variant string "/home/soeb/.cache/rhythmbox/covers/KoЯn - Greatest Hits Vol. 1.jpg"
      )

Although I think this time I might have checked wrong. For some reason after rebooting it all works perfectly and without any problems. So I think it fortunately is fixed now. Thanks!

Revision history for this message
Paul Kuliniewicz (kuliniew) wrote :

That's good to hear. The reboot "fixed" the problem of the old panflute-daemon still running even after you installed the newer version. It's important to remove the applet from the panel before trying to kill panflute-daemon too, since the applet will immediately try to restart it. (I've been burned by this a few times myself.)

Changed in panflute:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.