Fix update reliability problem
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mediascanner2 (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Currently the dash does not always get results when querying during system scans. The reason for this is that reads and writes clash with each other in SQLite's default journaling mode. There is a retry logic but sometimes it still fails even with 100 retries.
SQLite has a solution for this which is moving to WAL logging. Unfortunately that requires read/write access to the db and some auxiliary files even for readers (if you try it works, but all queries return empty). This is prohibited by current app armor policy.
There does not seem to be a simple solution for this issue. Ones with more work include:
- loosening app armor rules for apps that need the db (music-app, others?)
- moving all queries behind a dbus service
Related branches
- unity-api-1-bot: Needs Fixing (continuous-integration)
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Jussi Pakkanen (community): Needs Fixing
- Jamie Strandboge: Pending requested
- James Henstridge: Pending requested
-
Diff: 2214 lines (+945/-453)18 files modifieddebian/control (+1/-0)
src/daemon/CMakeLists.txt (+1/-0)
src/mediascanner/CMakeLists.txt (+20/-2)
src/mediascanner/MediaStore.cc (+94/-19)
src/mediascanner/MediaStore.hh (+9/-1)
src/mediascanner/d-bus/service-stub.cc (+6/-0)
src/mediascanner/d-bus/service-stub.hh (+1/-0)
src/mediascanner/mediascanner-2.0.map (+35/-5)
src/ms-dbus/CMakeLists.txt (+1/-2)
src/ms-dbus/main.cc (+2/-2)
src/ms-dbus/service-skeleton.cc (+2/-2)
src/ms-dbus/service-skeleton.hh (+1/-1)
src/qml/Ubuntu/MediaScanner/MediaStoreWrapper.cc (+1/-1)
test/CMakeLists.txt (+15/-5)
test/test_dbus.cc (+1/-1)
test/test_mediastore.cc (+658/-412)
test/utils/DBusTest.cpp (+50/-0)
test/utils/DBusTest.h (+47/-0)
affects: | mediascanner2 → mediascanner2 (Ubuntu) |