[vlc-devel] [PATCH 00/13] Execute medialib queries out of the UI thread

Rémi Denis-Courmont remi at remlab.net
Mon Nov 23 21:09:37 CET 2020


Le lundi 23 novembre 2020, 18:30:14 EET Romain Vimont a écrit :
> Currently, the Qt interface for medialibrary executes database queries from
> the UI thread. As a consequence, every I/O blocking results in a freeze of
> the whole VLC interface.

Strictly speaking, local I/O never blocks, but whatever.

> In practice, on my computer, during medialibrary
> indexation, it is common that VLC is frozen for tens of seconds (e.g. 45
> seconds) on scrolling or click on a tab.

Well my experience is that, if I enable the media library, VLC crashes 
immediately because of some demuxer bug. This is totally unacceptable.

The root cause bug is most likely in an underlying library (and possibly 
failure of Debian to update), caused by a file in one of the standard media 
directory. Still, for the sake of reliability, it is totally insane and 
unacceptable that VLC crashes just because of a bug in a demuxer triggered by 
a file that is neither being played and in a directory that was not explicitly 
added.

If this hits one out of a dozen of devs, how many million users will have VLC 
crash straight away?

> There are two major (and independent) issues:
>  1. I/O on the UI thread (#22687)
>  2. database lock starvation while indexing

If you do a reasonable amount of I/O, doing it on the UI thread is fine. If you 
do an insane amount of I/O, then you will slow the system down, and drain the 
battery, no matter which thread or even process you do it from. You just 
simply should not do that.

And while the database might be robust enough to run from within VLC, it is 
abundantly that some part of indexing is *not*. I guess preparsing especially.

So this patch probably has some merits but it looks like putting the cart 
before the horse.

-- 
Rémi Denis-Courmont




More information about the vlc-devel mailing list