Libmusicbrainz fails to parse metadata after recent MusicBrainz API update

Bug #1005075 reported by James Henstridge on 2012-05-27
46
This bug affects 9 people
Affects Status Importance Assigned to Milestone
libmusicbrainz (Ubuntu)
Undecided
Logan Rosen
Precise
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

Launchpad Janitor (janitor) wrote :

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

Changed in libmusicbrainz (Ubuntu):
status: New → Confirmed

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

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..

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 :/

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) on 2012-06-25
Changed in libmusicbrainz (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → Logan Rosen (logan)
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
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.

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
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.

Still broken in precise.

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)
Timo Aaltonen (tjaalton) wrote :

uploaded to -proposed

Changed in libmusicbrainz (Ubuntu Precise):
status: Triaged → In Progress
Timo Aaltonen (tjaalton) on 2012-07-03
description: updated
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.

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

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.

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
Scott Kitterman (kitterman) wrote :

Jim,

What did you do to test this was verified?

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

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).

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  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers