MusicBrainz Server hotfix, 2024-04-30

A lack of robustness in MusicBrainz Server’s usage of Postgres indexes, combined with a malicious trend of jamming music databases, ended up with [MBS-13536] blocking the replication for mirrors having legacy indexes and [MBS-13555] blocking the creation of new mirrors. Additionally, a patch for [MBS-7646] showing aliases in more places, currently deployed in beta, needed to be partly deployed on the main servers to ensure cache consistency. Those are the reasons for this hotfix ahead of the upcoming schema change release.

While the issues [MBS-13536] and [MBS-13555] have been affecting mirrors, preventing these from happening again is done through [MBS-13562] only on the side of our main servers, thus no MusicBrainz Docker release is needed.

Thanks to derat for continuously contributing to the MusicBrainz Server code. Thanks to chaban, lotooo, Matthieu42, and nohattila for having reported those bugs. And thanks to all others who keep translating and testing the beta version!

The git tag is v-2024-04-30-hotfix.

Continue reading “MusicBrainz Server hotfix, 2024-04-30”

ListenBrainz Radio: New release now live!

Hello!

I’m pleased to announce that we’ve just released the latest version of LB Radio!

This release changes many things under the hood since the first release — given all the feedback you’ve given us, we were busy making improvements clear across the board. The improvements include:

  • Speed: LB Radio artist and tag elements are much faster now, since most of the work is being done by Postgres (and not AI!) and not in slower and wasteful Python code as part of our Troi recommendation engine.
  • More distinct modes: In our first version it was hard to tell the difference between the easy, medium and hard modes. This version fixes a few bugs and improves the overall algorithms used to make the artist and tag element playlists. The playlists generated for each mode should feel more distinct now.
  • Country element: We’ve added a new country element that creates a playlist of recordings from artists who are originally from the selected country. This doesn’t always ensure that the music that we serve us is actually from that country or even representative of that country. Right now, we’re making a best effort for making a playlist that is representative of the country, but we might be missing the mark — you tell us. Also, tiny countries (e.g Vatican City, Andorra) don’t usually generate enough recordings to make good playlists, since there isn’t a lot of data available. Also, good thing Antarctica is not a country. 😂
  • Streamlined syntax and improved error messages: The parsing library that LB Radio version 1 used was pretty cool, but its error messages were hated by everyone, even hard core geeks. Thus, we wrote a new parser that could give us better error messages and to make that process easier, the syntax of LB Radio has been made more consistent.

Let’s dive into a quick look of the improved syntax — all the following examples are valid LB Radio prompts:

David Bowie

#punk

artist:(Tina Turner)

tag:(trip hop, dreampop)

The most important thing to know is that any elements that accept free form text (e.g. tags and artist names), should always be enclosed in ( ). Please refer to our official documentation for all the details.

Have fun making new playlists! And as always, if you find a bug, please create a ticket in our bug tracker.

Thanks!

SSL.com is evil and deceptive: Don’t do business with SSL.com

In the past we’ve purchased our SSL/TLS certificates from SSL.com and when we last renewed our main domain’s SSL certificate, we suddenly started getting charged $20/month for:

eSigner Cloud Signing for OV Code Signing Tier 1 Monthly

Whatever this service is, we didn’t sign up for it. And trying to get SSL.com to stop charging us and refunding us the money has been a nightmare over the past year. The UI on their site is so bad that I can’t find anything and I am constantly confused by all of the useless and cryptic information packed into every single unreadable page.

In the end, I resorted to contacting customer support, who on the surface seem nice and helpful, but really all they do is refer matters to “internal teams” who never actually resolve any issues. This is nothing more than stonewalling.

Eventually they acknowledged that we are due a refund for $200+. But they were unable to refund the money because the credit card used for the original transaction expired by the time SSL.com got its act together.

This entirely unforeseeable problem was, as you might guess, referred to an internal team. Where it has been sitting for the past year now. Any attempts to get this to move along have resulted in nothing more but:

“We’re sorry for the inconvenience, we’ve forwarded this to an internal team.”

Joy. I guess that $200 will never be recovered and I need to cut my losses dealing with evil corporations.

So, be warned: Do not do business with SSL.com and use the amazing Let’s Encrypt service instead! If by some miracle, we get our money back, I’ll donate it to Let’s Encrypt instead!

MusicBrainz Server update, 2024-04-09

This release includes a rewrite of the artist credit editor, which should make it more reliable and also allows undoing row removals, the bane of the too-quick-for-their-own-good editor! It also includes a lot of other small fixes and improvements.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.


In case your mirror is older than Postgres 12 migration in 2020, if some update scripts didn’t work for some reason back in that time, you might have the following error in the file mirror.log or mirror.log.1 since yesterday:

ERROR:  index row requires xxxxx bytes, maximum size is 8191

Then open a PostgreSQL invite, for example as follows:

admin/psql

Finally, run the following SQL instructions:

SET search_path = musicbrainz, public;
DROP INDEX IF EXISTS track_idx_musicbrainz_collate;
DROP INDEX IF EXISTS track_idx_name;
DROP INDEX IF EXISTS track_idx_txt;

See MBS-13536 for more info.


Thanks to HibiscusKazeneko, kellnerd, lotooo, mr_maxis, sammyrayy and yindesu for having reported bugs and suggested improvements. Thanks to BestSteve, brtc, Leonie2, salo.rock, Vac31, wileyfoxyx and ypkim for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2024-04-09.

Continue reading “MusicBrainz Server update, 2024-04-09”

Off topic: mnslib updated for python 3.10/11 and new packages

[ Sorry for the interruption of the usual MetaBrainz tasks here, but we had a problem where a package we relied upon was not suited for pushing to our production servers. So, as a community effort we fixed this problem and this blog post is to let the general public know about our efforts. ]

The non-metric space library has some impressive fuzzy matching search features that we wanted to use for our metadata matching services. However, the library refused to install on Python 3.10/3.11. Nor were the recent binary packages working.

To address this, we enabled Python 3.10/3.11 support and built binary packages for Windows, Mac and of course, Linux. The code and automation for building new packages is in our clone of the nmslib library.

You can download the packages from PyPi and if you change your dependency from “nmslib” to “nmslib-metabrainz” you should be able to use our packages on Python 3.10/3.11.

However, we do not plan to make any further releases or feature improvements to this package, so please don’t ask us to do so. If anyone would like to adopt the improved version and continue to make releases, we’d be very grateful for someone to clone the repository and to carry on the work we’ve done.