Unconstrained download to a directory w/o permission crashes udm
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | ubuntu-download-manager (Ubuntu) |
Critical
|
Manuel de la Peña | ||
Bug Description
One of my system-image test suites creates a destination directory that is unwritable. Previously, when UDM tried to download a file to this while unconstrained, it would issue an error with "Permission denied" in the error output. Now however, udm appears to either crash or freeze. It becomes unresponsive to D-Bus and the error signal is never received, thus failing the test.
Further, since it usually freezes, this affects future tests because udm will not exit when its D-Bus exit method is called. Eventually it gets signal killed and then the tests can proceed.
For now, I will have to skip these tests when s-i runs under udm. The same tests pass for the curl-based downloader.
% dpkg-query -W ubuntu-
ubuntu-
Related branches
- system-apps-ci-bot: Approve (continuous-integration) on 2016-09-09
- Ubuntu Phablet Team: Pending requested 2016-09-07
-
Diff: 120 lines (+34/-8)3 files modifiedpo/ubuntu-download-manager.pot (+14/-1)
src/downloads/priv/ubuntu/downloads/file_download.cpp (+19/-7)
src/downloads/priv/ubuntu/downloads/file_download.h (+1/-0)
| Barry Warsaw (barry) wrote : | #1 |
| Changed in ubuntu-download-manager (Ubuntu): | |
| assignee: | nobody → Manuel de la Peña (mandel) |
| importance: | Undecided → Critical |
| status: | New → Triaged |
| Barry Warsaw (barry) wrote : | #2 |
Ping?
| Launchpad Janitor (janitor) wrote : | #3 |
This bug was fixed in the package ubuntu-
---------------
ubuntu-
[ Florian Boucault ]
* Fixes for crossbuilding.
[ Michael Sheldon ]
* Make user visible strings translatable (LP: #1618892)
* Fix queue blocking and error reporting when file path is unwritable
(LP: #1411866)
* Remove dependency on qt5-default metapackage
-- Michael Sheldon <email address hidden> Fri, 09 Sep 2016 11:49:03 +0000
| Changed in ubuntu-download-manager (Ubuntu): | |
| status: | Triaged → Fix Released |


I added some debugging; here's how to reproduce:
$ bzr branch lp:system-image $ cd system-image $ tox -e py34-udm --notest -r $ PYCURL= 0 SYSTEMIMAGE_ DBUS_DAEMON_ HUP_SLEEP_ SECONDS= 2 REACTOR_ TIMEOUT= 60 .tox/py34- udm/bin/ python -m nose2 -vv -P test_state_ machine_ exceptions
SYSTEMIMAGE_
SYSTEMIMAGE_
TestAPI.
I am watching the D-Bus signals and all I see is the `started` signal. After
that, nothing and the dbus loop times out. It doesn't matter how long I crank
the timeout to, no other signals are ever received.