[BUG] mAirlist freezes/crashes on empty or short search query

We noticed that the mAirlist UI freezes/becomes completely unresponsive for multiple seconds when entering an empty or a very short (single letter (e.g. ‘a’)) search string in the “Browser Search” window of the playout application in v8.

For context, we are currently working on migrating to mAirlist and are in the final stages of switching permanently to the software. We run 5 stations (multi-instance on cloud-based infrastructure - directly hooked into a PostgreSQL database) and have 4 different physical studios (connected to the cloud server over VPN using the mAirlist DB Server, with a fully local sync of all audio tracks). We have a database that consists of around 40.000 different tracks.

Knowing the size of our database, it is understandable that searching takes multiple seconds when entering a search query, however, it should not freeze up the entire application while it is running, blocking a DJ from interacting with the application.

Reproduction

Now, to verify this issue, I created a new mAirlist database on a fresh (trail) installation of the latest version of V8 Professional (8.0.8), added around a 200 tracks to a local database (DB file), and tried to reproduce the same issue. When typing an empty search query you will see the playout software also freezing for multiple seconds:

Reproduction video

Hardware specifications

We run Windows 11 across all our studios and Windows Server 2022 on our cloud-based infrastructure.

Each studio machine has at least 16GB of RAM and a recent Ryzen 5/7 or Intel i7 variant CPU.

We run mAirlist v8.0.8 on our studio PCs and mAirlist v8.0.7 on our Cloud server.

Hi @MaartenVN ,

do you see the same Problem on older Versions of mAirlist or do you migrate from a totally different software?

From my experience using Database connections over VPN can cause lot of problems but that also depends on what type of VPN is used. OpenVPN might cause more problems than IPSec (v2) or Wireguard. So what are you using as VPN?

But in general, yes I would like to see non gui blocking requests when using mAirlist, that would make a big difference. By the way, usually the playout will continue even transitions to the next song will not be affected by the freeze. At least that was always Torbens priority and I saw that in action. But yes, I get the point, it does not feel right. Especiall for people that are not that deep in IT.

For the local database the freeze is kind of expected, that is a single file SQLite with no proper database backend. For testing the behavior I agree, it is always good to double check as you did.

For your Studios, did you test what happens if you connect them directly to the PostgreSQL Backend instead of through the mAirlist DB Server? You have the files local anyway, so you might not need that component in between. I only use mAirlist DB Server if I have to connect studios without having a VPN. So I can use direct https.

I assume if you do a search on the desktop of your cloud infrastructure the behavior is the same as in the Studios?

Hi @shorty.xs

Thanks for the response!

do you see the same Problem on older Versions of mAirlist or do you migrate from a totally different software?

We are migrating from different playout software.

We are using a WireGuard based VPN solution. In my experience with testing different setups this has no additional latency on the DB server API calls or performance impact on the playout software.

In my experience, using the DB server for our studios is faster, compared to a direct PostgreSQL connection. (I think this may have something to do with the fact that direct SQL connections requires more round trips to the database to build all the necessary data, while the DB Server multiplexes more data in the API calls - but that is only an assumption :grinning_face_with_smiling_eyes:. Since we run the PostgreSQL instance on the same host as the DB Server, it can run DB queries faster).

But in general, yes I would like to see non gui blocking requests when using mAirlist, that would make a big difference.

This is indeed the main culprit here. Even if the search would have taken 20s, it should not freeze the UI during the search operation. The same can be applied to other parts of the application that require DB(server) calls, like the item properties dialog, for example.

The audio never freezes, so thats great, but it’s not ideal for our DJs, who think the application is about to crash…

I assume if you do a search on the desktop of your cloud infrastructure the behavior is the same as in the Studios?

I just tested this, the same freeze behavior applies.

I have been searching for potential settings that could solve this issue and came across this section in the configuration application:

Miscellaneous > Settings:

Changing these to the following values has improved search speeds & prevents entering only 0 or 1 chars:

Unfortunately this will not solve the freeze issue in every case (e.g. when on a slower network), but it’s already a workaround that is acceptable.

Hi Maarten,

There is another way to speed up the search and, as a side effect, narrow it down.

By right-clicking in the search box, you can choose which fields or attributes to search in.
Have you tried this feature yet?

I’m really looking forward to hearing your feedback.

Best regards, Uli

1 Like

Yes, I get that. I am a Sysadmin, I know how stable mAirlist works, I know how much mAirlist evolved and still I’m sometimes worried if it might crash.

So we can take any VPN or network issue out of the way. I am close to a 100% sure we don’t have any Network layer issue here.

Maybe @Torben can look into this. Although I don’t think this can be classified as a bug but more like how the architecture of the software is at the moment. So hopefully there is a chance to decouple the GUI when there is a search request happening.


By the way similar things happen when we drag a 2h recording from the Windows explorer directly to the playout playlist or a database playlist. Because the file will than be analyzed first, the gui might also freeze. So I trained the people operating that, not to open the Database from the playout window but from a Desktop shortcut. This way they are 2 independent processes and the playout keeps being responsive at any time while the Database gui freezes during analysis. Works stable for us since many years.

2 Likes

Another one is opening a folder with a very large amount of items in the “Database” tree of the playout software.

That is one I currently haven’t found a solution for disabling/limiting.

Dafür wäre ich auch sehr dankbar! Und ich glaube wir sprechen hier von 90% der mAirList User :slight_smile:
[ENG] I’d really appreciate that! And I think we’re talking about 90% of mAirList users here

1 Like