medialibrary merge requestshttps://code.videolan.org/videolan/medialibrary/-/merge_requests2022-02-14T10:45:50Zhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/620Fix recursive sqlite contexts acquisition2022-02-14T10:45:50ZHugo Beauzée-LuyssenFix recursive sqlite contexts acquisition0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/619Fix background jobs idle detection2022-02-14T10:21:38ZHugo Beauzée-LuyssenFix background jobs idle detection0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/618meson: Normalize indentation2022-02-16T07:53:17ZHugo Beauzée-Luyssenmeson: Normalize indentation0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/617CI: Minor fixups2022-02-11T14:38:58ZHugo Beauzée-LuyssenCI: Minor fixups0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/616Fix warnings2022-02-11T14:27:25ZHugo Beauzée-LuyssenFix warnings0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/615sqlite: Remove unused member variable2022-02-11T14:19:27ZHugo Beauzée-Luyssensqlite: Remove unused member variable0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/614sqlite: Fix recursive acquisition of locked contexts2022-02-11T13:30:12ZHugo Beauzée-Luyssensqlite: Fix recursive acquisition of locked contexts0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/613parser: Don't toggle idle state outside of the worker2022-02-11T11:16:40ZHugo Beauzée-Luyssenparser: Don't toggle idle state outside of the workerChanging the idle state is likely to cause a deadlock on startup when
tasks are restored.
parser::restore() is called from MediaLibrary::initialize() with the
medialib lock held, and changing the idle state synchronously from that
thread...Changing the idle state is likely to cause a deadlock on startup when
tasks are restored.
parser::restore() is called from MediaLibrary::initialize() with the
medialib lock held, and changing the idle state synchronously from that
thread would cause onIdleChange to be invoked, which will try to lock
the mutex recursively, leading to a deadlock.0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/612CI: Add an asan/ubsan job for merge requests2022-02-11T10:42:54ZHugo Beauzée-LuyssenCI: Add an asan/ubsan job for merge requests0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/611Code cleanup2022-02-11T09:45:22ZHugo Beauzée-LuyssenCode cleanupFix various cppcheck warningsFix various cppcheck warnings0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/610meson: Add an explicit libtool_workaround option2022-02-11T12:38:36ZHugo Beauzée-Luyssenmeson: Add an explicit libtool_workaround optionWhich is used to enforce `-lpthread` and `-latomic` when it's available.
This should fix #411 and avoid useless additional link flags when libtool isn't usedWhich is used to enforce `-lpthread` and `-latomic` when it's available.
This should fix #411 and avoid useless additional link flags when libtool isn't used0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/609Bump libvlcpp submodule2022-02-09T08:59:20ZHugo Beauzée-LuyssenBump libvlcpp submodule0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/608Refactor SQLite lock handling2022-02-08T13:51:57ZHugo Beauzée-LuyssenRefactor SQLite lock handlingThis MR enforces the need for an active sqlite context (aka lock) when executing a statement.
This fixes a small race window in which an existing connection could be user after the database was dropped.
It might also fix some rare cras...This MR enforces the need for an active sqlite context (aka lock) when executing a statement.
This fixes a small race window in which an existing connection could be user after the database was dropped.
It might also fix some rare crashes due to improper syncronization/missing locks for some requests.
Fix #405 and #413
I really doubt this can be backported though.0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/607CI: Don't split build and tests2022-01-28T14:50:07ZHugo Beauzée-LuyssenCI: Don't split build and testsThe split is virtual for win32 and doesn't bring much for other
platforms.
Given the build is fairly fast, it might actually be faster
to just build and run in one job than to spawn 2 jobs and
upload/download/extract the artifactsThe split is virtual for win32 and doesn't bring much for other
platforms.
Given the build is fairly fast, it might actually be faster
to just build and run in one job than to spawn 2 jobs and
upload/download/extract the artifacts0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/606CI: Re-enable tsan tests2023-06-28T21:21:05ZHugo Beauzée-LuyssenCI: Re-enable tsan tests0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/605DeviceLister: fix device-mapper detection2022-02-01T11:19:53ZLouis RégnierDeviceLister: fix device-mapper detectionOn some systems, block devices are directly exposed in /dev/mapper/* instead
of a symbolic link to /dev/dm-XOn some systems, block devices are directly exposed in /dev/mapper/* instead
of a symbolic link to /dev/dm-X0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/604tests: Fix more potential timeout2022-01-26T15:37:24ZHugo Beauzée-Luyssentests: Fix more potential timeoutIf the parser signaled completion before and is receiving new tasks, we need to let the application know.
This MR also removes manual timeout for all functional tests, in order to let meson handle it itself, so we can display a stacktra...If the parser signaled completion before and is receiving new tasks, we need to let the application know.
This MR also removes manual timeout for all functional tests, in order to let meson handle it itself, so we can display a stacktrace instead of a timeout without more information.0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/603test: Fix potential functional tests timeout2022-01-26T13:55:03ZHugo Beauzée-Luyssentest: Fix potential functional tests timeoutIf the discoverer signals its completion right after the parser, we'd ignore the parser completion, causing the test to hand until it times out.If the discoverer signals its completion right after the parser, we'd ignore the parser completion, causing the test to hand until it times out.0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/602tests: Fix data race on vptr2022-01-26T10:37:39ZHugo Beauzée-Luyssentests: Fix data race on vptrWhen tearing down MediaLibraryWithDiscoverer, we end up stopping the
parser from the media library destructor (not the
MediaLibraryWithDiscoverer one) which causes the vptr to be updated to
the MediaLibrary one. This will cause the regul...When tearing down MediaLibraryWithDiscoverer, we end up stopping the
parser from the media library destructor (not the
MediaLibraryWithDiscoverer one) which causes the vptr to be updated to
the MediaLibrary one. This will cause the regular getParser overload to
be used if the discoverer thread asks for a parser when stopping.
By explicitly stopping the discoverer from the test class, we ensure the
proper vptr gets used until the discoverer thread joins0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/601DiscovererWorker: Fix lock inversion2022-01-26T10:15:24ZHugo Beauzée-LuyssenDiscovererWorker: Fix lock inversionRegister & unregister the FsHolder callback from the discoverer thread
instead of the thread that starts the discoverer.
If the FsHolder callback is registered from enqueue(), we lock the
discoverer mutex, then the fs holder mutex, and w...Register & unregister the FsHolder callback from the discoverer thread
instead of the thread that starts the discoverer.
If the FsHolder callback is registered from enqueue(), we lock the
discoverer mutex, then the fs holder mutex, and will lock in the
opposite order when the callback is invoked0.11.x