Better protection against concurrent access
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu system image |
Fix Released
|
Critical
|
Barry Warsaw | ||
ubuntu-download-manager |
Fix Released
|
Critical
|
Manuel de la Peña | ||
ubuntu-system-settings (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Trying to update to 170 from a fresh 169 on mako I get the above error message after downloading the update and trying to install it.
http://
TEST CASE (verified on mako):
1. Flash the device with an older build than latest in -proposed
$ phablet-flash ubuntu-system --channel devel-proposed -b --revision 176
2. Wait
3. On the device: Skip intro
4. Configure networking and make sure the device connects to the Wifi network
5. Go to system-settings
6. Select 'Updates'
7. The device will detect that an update is available (e.g 178), proceed with the update
EXPECTED RESULT:
Upgrade succeeds and user can reboot the device to apply them
ACTUAL RESULT:
Upgrade fails with
FileNotFoundError: /var/lib/
Related branches
- PS Jenkins bot: Approve (continuous-integration)
- Diego Sarmentero (community): Approve
-
Diff: 1895 lines (+1198/-98)32 files modifieddebian/libubuntu-download-manager-common-dev.install (+1/-0)
download-manager.pro (+7/-1)
ubuntu-download-manager-common-tests/main.cpp (+25/-0)
ubuntu-download-manager-common-tests/test_metadata.cpp (+169/-0)
ubuntu-download-manager-common-tests/test_metadata.h (+55/-0)
ubuntu-download-manager-common-tests/ubuntu-download-manager-common-tests.pro (+36/-0)
ubuntu-download-manager-common/ubuntu-download-manager-common.pro (+2/-0)
ubuntu-download-manager-common/ubuntu/download_manager/metadata.cpp (+80/-0)
ubuntu-download-manager-common/ubuntu/download_manager/metadata.h (+56/-0)
ubuntu-download-manager-priv/downloads/daemon.cpp (+5/-2)
ubuntu-download-manager-priv/downloads/factory.cpp (+3/-8)
ubuntu-download-manager-priv/downloads/file_download.cpp (+61/-59)
ubuntu-download-manager-priv/downloads/file_download.h (+5/-4)
ubuntu-download-manager-priv/downloads/group_download.cpp (+2/-1)
ubuntu-download-manager-priv/system/file_manager.cpp (+5/-0)
ubuntu-download-manager-priv/system/file_manager.h (+1/-0)
ubuntu-download-manager-priv/system/filename_mutex.cpp (+133/-0)
ubuntu-download-manager-priv/system/filename_mutex.h (+64/-0)
ubuntu-download-manager-priv/ubuntu-download-manager-priv.pro (+4/-2)
ubuntu-download-manager-test-lib/ubuntu-download-manager-test-lib.pro (+4/-2)
ubuntu-download-manager-test-lib/ubuntu/download_manager/tests/base_testcase.cpp (+1/-1)
ubuntu-download-manager-test-lib/ubuntu/download_manager/tests/server/file_manager.cpp (+1/-1)
ubuntu-download-manager-test-lib/ubuntu/download_manager/tests/server/filename_mutex.cpp (+58/-0)
ubuntu-download-manager-test-lib/ubuntu/download_manager/tests/server/filename_mutex.h (+43/-0)
ubuntu-download-manager-tests/downloads/test_download.cpp (+197/-4)
ubuntu-download-manager-tests/downloads/test_download.h (+9/-0)
ubuntu-download-manager-tests/downloads/test_downloads_db.cpp (+5/-5)
ubuntu-download-manager-tests/downloads/test_downloads_db.h (+2/-0)
ubuntu-download-manager-tests/downloads/test_group_download.cpp (+7/-6)
ubuntu-download-manager-tests/system/test_filename_mutex.cpp (+108/-0)
ubuntu-download-manager-tests/system/test_filename_mutex.h (+45/-0)
ubuntu-download-manager-tests/ubuntu-download-manager-tests.pro (+4/-2)
- Registry Administrators: Pending requested
-
Diff: 540 lines (+203/-16)11 files modifiedNEWS.rst (+3/-0)
systemimage/api.py (+4/-0)
systemimage/dbus.py (+35/-3)
systemimage/download.py (+35/-1)
systemimage/service.py (+2/-1)
systemimage/testing/controller.py (+6/-2)
systemimage/testing/helpers.py (+8/-5)
systemimage/testing/nose.py (+10/-1)
systemimage/tests/data/config_03.ini (+1/-1)
systemimage/tests/data/index_24.json (+36/-0)
systemimage/tests/test_dbus.py (+63/-2)
- Stéphane Graber: Pending requested
-
Diff: 2123 lines (+901/-146)65 files modifiedMANIFEST.in (+1/-0)
NEWS.rst (+48/-1)
PKG-INFO (+1/-1)
cli-manpage.rst (+1/-1)
dbus-manpage.rst (+1/-1)
debian/changelog (+32/-0)
debian/control (+5/-4)
debian/patches/01_send_ack_on_applyupdate.diff (+0/-16)
debian/patches/lp1284217.patch (+106/-0)
debian/patches/series (+1/-1)
debian/rules (+1/-0)
ini-manpage.rst (+1/-1)
setup.cfg (+2/-2)
setup.py (+1/-1)
system_image.egg-info/PKG-INFO (+1/-1)
system_image.egg-info/SOURCES.txt (+1/-1)
systemimage/api.py (+5/-1)
systemimage/bag.py (+1/-1)
systemimage/bindings.py (+1/-1)
systemimage/candidates.py (+1/-1)
systemimage/channel.py (+1/-1)
systemimage/config.py (+1/-1)
systemimage/dbus.py (+51/-16)
systemimage/device.py (+1/-1)
systemimage/docs/conf.py (+1/-1)
systemimage/download.py (+36/-2)
systemimage/gpg.py (+95/-1)
systemimage/helpers.py (+1/-1)
systemimage/image.py (+1/-1)
systemimage/index.py (+1/-1)
systemimage/keyring.py (+3/-4)
systemimage/logging.py (+29/-8)
systemimage/main.py (+1/-1)
systemimage/reactor.py (+1/-1)
systemimage/reboot.py (+1/-1)
systemimage/scores.py (+1/-1)
systemimage/service.py (+14/-6)
systemimage/settings.py (+1/-1)
systemimage/state.py (+8/-10)
systemimage/testing/controller.py (+17/-8)
systemimage/testing/dbus.py (+8/-2)
systemimage/testing/demo.py (+1/-1)
systemimage/testing/helpers.py (+25/-7)
systemimage/testing/nose.py (+21/-2)
systemimage/tests/data/config_03.ini (+1/-1)
systemimage/tests/data/index_24.json (+36/-0)
systemimage/tests/test_api.py (+1/-1)
systemimage/tests/test_bag.py (+1/-1)
systemimage/tests/test_candidates.py (+1/-1)
systemimage/tests/test_channel.py (+1/-1)
systemimage/tests/test_config.py (+1/-1)
systemimage/tests/test_dbus.py (+98/-8)
systemimage/tests/test_download.py (+1/-1)
systemimage/tests/test_gpg.py (+175/-2)
systemimage/tests/test_helpers.py (+1/-1)
systemimage/tests/test_image.py (+1/-1)
systemimage/tests/test_index.py (+1/-1)
systemimage/tests/test_keyring.py (+20/-5)
systemimage/tests/test_main.py (+25/-1)
systemimage/tests/test_scores.py (+1/-1)
systemimage/tests/test_settings.py (+1/-1)
systemimage/tests/test_state.py (+1/-1)
systemimage/tests/test_winner.py (+1/-1)
systemimage/version.txt (+1/-1)
tox.ini (+1/-1)
Changed in ubuntu-download-manager: | |
importance: | Undecided → High |
assignee: | nobody → Manuel de la Peña (mandel) |
status: | New → Confirmed |
importance: | High → Critical |
Changed in ubuntu-system-image: | |
status: | Incomplete → New |
Changed in ubuntu-system-image: | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Barry Warsaw (barry) |
milestone: | none → 2.1 |
summary: |
- "FileNotFoundError: /var/lib/system-image/blacklist.tar.xz" + Better protection against concurrent access |
Changed in ubuntu-system-image: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-system-image: | |
status: | Fix Committed → In Progress |
Changed in ubuntu-download-manager: | |
status: | Confirmed → In Progress |
Changed in ubuntu-system-image: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-download-manager: | |
status: | In Progress → Fix Released |
Changed in ubuntu-system-image: | |
status: | Fix Committed → Fix Released |
Looking at the syslogs the only files that system image told the download manager to download are:
Feb 7 16:26:39 ubuntu-phablet ubuntu- download- manager[ 5980]: 2014-02-07 16:26:39,527 - DEBUG - Finished downloads ("/android/ cache/recovery/ keyring. tar.xz. asc", "/android/ cache/recovery/ keyring. tar.xz" )
And therefore if that blacklist.tar.xz file is coming from the outside world it was not processed by udm AFAIK.