donates a 48-port gig switch!

Our friends at just donated a 48 port gig switch to MusicBrainz! This new (to us) switch will allow us to shorten the update cycle for our indexed searches. Currently it takes about 3 hours to generate the indexes and to push them out to the search servers. With this new switch, we should be able to push the indexes quite a bit faster, which should shave off 60-90 minutes off our update cycle.

Thanks so much for the donation! Thanks to Adrian for making this happen in next to no time!

Mini-Summit Session Notes

Yesterday we held our mini-summit in London to great success. The MusicBrainz team huddled up in a hotel last night and finished writing up notes of everything we covered, and you can now have a look at them on the wiki at MusicBrainz Summit/2012-Mini_Summit/Notes. In general, we provided an update of what’s been happening at MusicBrainz, what’s coming up in the future, and heard how each company are using MusicBrainz. Discussions have started with respect to classical support, but don’t expect anything concrete any time soon!

Many thanks to everyone who came along to this summit and helped make it work – it was great seeing you all!

London pub gathering

On Monday we’re having the MusicBrainz mini-summit in London. Following the summit, starting at 6pm, we’re going to move to the Tower Tavern to have a pint of beer (or a few).

While the summit is open to people who have registered ahead of time, the pub gathering will be open to anyone who would like to join in. We’re not going to have any formal topics scheduled for the gathering — just a friendly gathering of like minded souls and of course, beer!

I hope to see you on Monday evening!

Server update, 2012-01-26

We’ve just pushed out the last MusicBrainz web server update out for this month. Here are the bugs we’ve squashed, and the new features and improvements that have been added. As always, keep helping out with scheduling at the scheduling game, and we’ll do our best to get the important things fixed as soon as we can! Thanks to Ian McEwan, Lukáš Lalinský, Calvin Walton, Johannes Weißl and the MusicBrainz developers for their work on this update.


  • [MBS-2690] – Release editor reports incorrect "Reorder mediums" edits
  • [MBS-3692] – Cover image from is not displayed
  • [MBS-3798] – Cover art not working for
  • [MBS-4040] – "Add URL relationship" doesn’t autodetect YouTube channel URLs
  • [MBS-4150] – Edit recording edits include artist credits even when they didn’t change
  • [MBS-4174] – Changes to track times don’t allow to propagate to recordings
  • [MBS-4177] – Don’t add "musicbrainz" to the search path for tests
  • [MBS-4181] – Date field doesn’t display nice error message
  • [MBS-4184] – label releases list sorted wrong
  • [MBS-4185] – Release Editor should not offer to update recordings when creating new ones
  • [MBS-4198] – "Link type" in edit search should be "relationship type"
  • [MBS-4199] – Search criteria when searching edits by relationship type breaks after initial search
  • [MBS-4202] – The "Merge releases and recordings" recording diff always thinks artists are different
  • [MBS-4211] – Copy all track changes crashes with new recordings
  • [MBS-4222] – When merging releases, I’m asked to pick a "work"
  • [MBS-4231] – JS URL cleanup recognizes more URLs than it should


  • [MBS-2037] – Unify all references to memcached servers in lib/DBDefs.
  • [MBS-2799] – RE: Add the option to indicate a release has no barcode
  • [MBS-4178] – Languages/Scripts statistics page should exclude unused/unavailable items
  • [MBS-4182] – Add RDFa attribute for artist IPI codes
  • [MBS-4187] – Display language and script statistics next to each other
  • [MBS-4191] – Stop auto-transcluding the Proposal namespace in wikidocs
  • [MBS-4195] – Improve Google descriptions
  • [MBS-4243] – Use EWMA to smooth rate of change statistics graphs
  • [MBS-4247] – Clarify language/script statistics to explain why some languages/scripts aren’t visible

New Feature

  • [MBS-3273] – Avoid memcached clashing when running in shared environments
  • [MBS-4244] – Add medium format distribution statistics
  • [MBS-4245] – Add release format distribution statistics
  • [MBS-4246] – Add artist credit distribution statistics

The tag for this release is v-2012-01-26-ngs-bug-fixes.

libmusicbrainz 4.0.0 released!

Andy Hawkins says:

In conjunction with Lukas I’ve been working on a complete rewrite of libmusicbrainz to support the new Web Service v2 released alongside NGS. I’m happy to announce the official release of this new library (libmusicbrainz4).

The library is written as a relatively simple parser for the results from the Web Service, with as little logic as possible. This should mean it is easy to maintain to keep in step with any changes in the schema for the XML Web Service.

The main interface is a C++ class ‘CQuery’, that returns a Metadata object containing a parsed version of the response. There is also a C interface that loosely wraps the C++ classes.

Using the library requires a good understanding of the queries and responses to and from the Web Service. Download the library, or browse the online documentation or generate the documentation from the source with make docs.

If you find any issues, please report them using JIRA (under the project ‘libmusicbrainz’).

I will follow the musicbrainz-devel mailing list and the #musicbrainz-devel IRC channel on freenode in order to answer questions if at all possible.



2012-01-12 Schema change fix for replicated slaves

Sadly, our testing for replication failed to catch a problem with the instructions we posted yesterday. If, when running the replication scripts you encountered the below error, please read on!

Attribute (conn) does not pass the type constraint because: Validation
failed for 'DBIx::Connector' with value DBI::db=HASH(0x9e957d0)
(not isa DBIx::Connector)

We made some changes to our database connection routines recently, and the replication scripts were not correctly migrated. We’ve got these changes in now though, so to fix this problem, repeat the instructions in our previous post, but use the v-2012-01-12-schema-change-2 tag. This should correspond to commit eb89c2b51f79..., which you can verify by running git rev-parse HEAD.

Sorry about these problems!

2012-01-12 Schema change upgrade instructions for replicated setups

We just finished the latest schema change release! If you are running a full musicbrainz-server mirror, then follow these instructions for upgrading your installation:

  1. Take down the web server running MusicBrainz, if you’re running a web server.
  2. Turn off cron jobs if you are automatically updating the database via cron jobs.
  3. Make sure your REPLICATION_TYPE setting is RT_SLAVE
  4. Switch to the new code with git fetch origin followed by git checkout v-2012-01-12-schema-change-2
  5. Install any necessary perl modules by running perl ./Makefile.PL and sudo make installdeps
  6. Run ./ from the top of the source directory.
  7. Set DB_SCHEMA_SEQUENCE to 14 in lib/
  8. Turn cron jobs back on, if needed.
  9. Restart the MusicBrainz web server, if needed.

If you are running a mbslave mirror, check out the latest code and read the upgrade instructions in the README file.

Schema change, 2012-01-12

We’ve just finished pushing out the scheduled schema change update today. A slightly rocky experience, but we’ve managed to get everything ironed out now and our servers are back to their normal selves. Before, I get into release notes, a few notes for people who’d like to upgrade their non-replicated servers. For replicated servers, please see this post.

  1. First, update your repository to the v-2012-01-12-schema-change tag.
  2. Next, disable any MusicBrainz cron jobs you might have scheduled to run
  3. Run ./ provided in the root directory of your musicbrainz-server checkout.
  4. Update your DBDefs DB_SCHEMA_SEQUENCE configuration option to 14.
  5. Turn any cron jobs back on

And onto the release notes!


  • [MBS-2121] – Deleting track/row in advanced tracklist editor while artist credits "dialog" is open leaves it stuck
  • [MBS-2390] – It’s not really possible to assign a track to a recording because cannot see length of track in either tracklist or proposal list
  • [MBS-2620] – Most ‘edit’ edits do not check for conflicts
  • [MBS-3393] – App keeps DB connections open and doesn’t reconnect upon DB restart.
  • [MBS-3696] – Using Jamendo as License Relationship fails due to Javascript change to Cover Art relationship
  • [MBS-3972] – ISWC column on works page should be nowrap
  • [MBS-4046] – Releases with pending edits are not marked as such in label page
  • [MBS-4099] – The server should give a good error message when it can’t connect to the DB
  • [MBS-4103] – Problems building database extensions with Ubuntu 11.10
  • [MBS-4129] – "Edit artist" doesn’t change artist credit for credits that were unchecked by default but checked manually
  • [MBS-4132] – Rate limited pages send HTML as text/plain
  • [MBS-4134] – Javascript sorting broken on Country statistics page since comma has been introduced
  • [MBS-4136] – beta.mb: recording edits generated by release editor when updating recording information from track changes are not auto-edits
  • [MBS-4138] – Language-Script page in statistics broke
  • [MBS-4146] – Track times deleted if using tab key
  • [MBS-4149] – The added referrer stuff breaks Amazon UK links
  • [MBS-4157] – beta.mb: Edit recording edits seem to create a ‘edit release’ edit too
  • [MBS-4169] – CDToc page shows blank/empty catalog numbers separated by commas


  • [MBS-1482] – Report: no language, no script
  • [MBS-2439] – Releases with multiple catalog numbers are shown multiple times on the Label page.
  • [MBS-2513] – Allow updating recording information when track information changes via the release editor
  • [MBS-3288] – Release group type isn’t shown when looking up a release group
  • [MBS-4105] – Warn when merging releases with track artists that don’t match

New Feature

  • [MBS-4147] – Display AcoustIDs using JavaScript


  • [MBS-3672] – Remove the deprecated Live Sound Engineer relationship


  • [MBS-2676] – Filter by relationship type

Server release tomorrow, January 12: Noon PST, 3PM EST, 20:00UK, 21:00CEST

We’re going to push out a server release tomorrow, January 12, at Noon PST, 3PM EST, 20:00UK, 21:00CEST. We expect to be offline for only a few minutes, but we’re going say that we’ll be offline for about 15 minutes starting right around that time.

Once we complete the server release, we’re going to post the usual list of bugs fixed, changes applied and new features created. Stay tuned!

Mini-summit and pub evening in London on January 30

The BBC requested that we convene a meeting with MusicBrainz community members and MusicBrainz developers in London. The goal of this meeting is to open lines of communication between MusicBrainz community members and developers and the BBC. Now that editors from the BBC and its affiliates are using MusicBrainz more, we should aim to properly indoctrinate these editors into MusicBrainz’ community.

I’ve decided to take this opportunity and invite other companies who are using MusicBrainz or are interested in using MusicBrainz to join this meeting. If you are interested in working with MusicBrainz commercially and would like to find out more about MusicBrainz, please feel free to attend this meeting. This all-day mini-summit will focus on the people who attend the summit — the attendees will largely set the agenda for the day. We will have technical, community and business focused representatives present who can talk about nearly all aspects of MusicBrainz.

The meeting will be held on January 30 in central London — the exact venue will be determined shortly. If you are interested in attending our mini-summit, please send me email at rob at musicbrainz dot org. Please tell me who you are, which company you represent and what sorts of topics you would like to see discussed. I’ll start building a rough agenda based on this feedback.

After the meeting we’re going to adjourn to a pub and enjoy a pint of beer. If you’re interested in MusicBrainz more casually or would like to meet some of the people behind MusicBrainz, feel free to pop in. As with the main portion of the meeting, we’ll pick a central London venue closer to the date.

I will mail out information about the mini-summit directly to the attendees, but I will post more information about the pub evening here on this blog.

I hope to see you in London at the end of the month!