Libmusicbrainz fails to parse metadata after recent MusicBrainz API update

Bug #1005075 reported by James Henstridge
46
This bug affects 9 people
Affects Status Importance Assigned to Milestone
libmusicbrainz (Ubuntu)
Fix Released
Undecided
Logan Rosen
Precise
Fix Released
High
Timo Aaltonen

Bug Description

[Impact]
apps using libmusicbrainz4-3 will not list complete song information

the uploaded version does include other fixes too, and the tarball was released on May 16th and has not seen further fixes to the branch since

[Test case]
open sound-juicer, pop in a CD you know is listed on Musicbrainz, and notice how it doesn't show any song names

[Regression potential]
Although the upstream changes were such that a simple backport was not feasible the regression potential is minimal, since this has now been in Debian and quantal for some time, and has been tested on precise too.

--

When trying to rip a CD with sound-juicer in Ubuntu 12.04, none of the track names appear and the following errors are printed to stderr:

    Unrecognised release group element: 'primary-type'
    Unrecognised track element: 'number'
    Unrecognised track element: 'number'
    Unrecognised track element: 'number'
    [repeated once for each track on CD]

This appears to have started happening after MusicBrainz rolled out a schema update that added some more information to releases.

Apparently the packaged version of libmusicbrainz does not handle the new elements in the XML and ignores everything after them inside the parent, as discussed in this bug report:

http://tickets.musicbrainz.org/browse/LMB-32

Apparently this bug has been fixed in libmusicbrainz 4.0.3.

Related branches

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in libmusicbrainz (Ubuntu):
status: New → Confirmed
Revision history for this message
Carl-Eric Menzel (duesenklipper) wrote :

Nothing much to add, except that I can confirm this bug. I'd love to see the new libmusicbrainz packaged.

Revision history for this message
Jim (ub71a5bwcb7k-martin) wrote :

It seems like this bug has been fixed once already:
http://www.jpstacey.info/blog/2011/06/13/sound-juicer-no-longer-retrieves-track-names-when-you-extract-audio-cds

Rhythmbox seems to work fine, but I think it uses a different version of libmusicbrainz..

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Ugh, that commit is not directly backportable to 4.0.0. Upstream does have 4.0.3 but there's no way it'll be SRU'able :/

Revision history for this message
James Henstridge (jamesh) wrote :

For what it is worth, I put together a package of 4.0.3 in one of my PPAs (https://launchpad.net/~jamesh/+archive/ppa), and Sound Juicer started behaving correctly again. So at least for the API Sound Juicer is using, the new version appears to be binary compatible.

Logan Rosen (logan)
Changed in libmusicbrainz (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → Logan Rosen (logan)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libmusicbrainz - 4.0.3-0ubuntu1

---------------
libmusicbrainz (4.0.3-0ubuntu1) quantal; urgency=low

  * New upstream release (LP: #1005075).
  * Bump Standards-Version to 3.9.3.
  * Bump Build-Depends for debhelper to >= 9.
 -- Logan Rosen <email address hidden> Mon, 25 Jun 2012 01:45:21 -0400

Changed in libmusicbrainz (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Sorry, but this was a pointless upload. Quantal already had libmusicrainz5 synced from Debian, and 4.0.x needs to be removed from the archive.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

..that said it needs to be fixed in precise too

Changed in libmusicbrainz (Ubuntu Precise):
importance: Undecided → High
status: New → Triaged
Revision history for this message
Evan Carroll (evancarroll) wrote :

In Precise, I was able to get around this buy stealing the package from Quantal

wget http://launchpadlibrarian.net/108682950/libmusicbrainz4-3_4.0.3-0ubuntu1_amd64.deb
dpkg -i libmusicbrainz4-3_4.0.3-0ubuntu1_amd64.deb

I've confirmed it'll work as is.

Revision history for this message
Rüdiger Kupper (ruediger.kupper) wrote :

Still broken in precise.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

I'll prepare the SRU, thanks for testing that 4.0.3 works on precise.

Changed in libmusicbrainz (Ubuntu Precise):
assignee: nobody → Timo Aaltonen (tjaalton)
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

uploaded to -proposed

Changed in libmusicbrainz (Ubuntu Precise):
status: Triaged → In Progress
Timo Aaltonen (tjaalton)
description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote :

I've reveiwed the diff, and this seems seems reasonable.

My concern is that this might change ABI - there are new fields added to the end of some classes, and some protected: functions have changed signature. I'm not familiar enough with the rules of C++ ABI to be confident this is safe; if you can get evidence to that effect (such as diffing the exported symbols) then I'll be happy with this.

Revision history for this message
Andy Hawkins (andy-jjcftv6wldnz) wrote :

I am upstream for libmusicbrainz. I've always been careful about not breaking ABI compatibility, and haven't had any reports of this happening in the past.

Extra fields are not an issue, these are all stored in 'hidden' data classes within each class. Also, I don't think the signature change of the protected functions is likely to be an issue either, as these are only called internally by the library.

Andy

Revision history for this message
muhkuh (markus-henschel) wrote :

On my system the bug seems to be more severe. Not only are song names missing from sound juicer but sound juicer also segfaults for some CDs when ripping is started. Using libmusicbrainz 4.03 also fixes the crashes.

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello James, or anyone else affected,

Accepted libmusicbrainz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/libmusicbrainz/4.0.3-0ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in libmusicbrainz (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
tags: added: verification-done
removed: verification-needed
Revision history for this message
Scott Kitterman (kitterman) wrote :

Jim,

What did you do to test this was verified?

Revision history for this message
Jim (ub71a5bwcb7k-martin) wrote :

Hi Scott,

I installed the new package by adding -proposed to my sources. I then inserted a CD, started sound-juicer and saw that the bug had disappeared, ie the track listing was complete and used correctly when ripping the CD.

/Jim

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Dunno if it's ok for the uploader to verify it, but IIRC (it was two weeks ago..) the song titles were missing, or some other information, without the update. With it howerer everything is fine as it was before the web API update. I did rip a number of new CD's before my vacation, and they all got the MB information correctly (using sound-juicer).

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libmusicbrainz - 4.0.3-0ubuntu0.1

---------------
libmusicbrainz (4.0.3-0ubuntu0.1) precise-proposed; urgency=low

  * New upstream bugfix release
    - LMB-31 - mb_relationlist_get_targettype always returns "target-type"
    - LMB-32 - Ignore unknown nodes when parsing XML responses
      (LP: #1005075)
 -- Timo Aaltonen <email address hidden> Tue, 03 Jul 2012 09:04:15 +0300

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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