update-manager cannot find meta-release info
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Software Updater |
Fix Released
|
Undecided
|
Unassigned | ||
update-manager (Ubuntu) |
Fix Released
|
High
|
Michael Vogt | ||
Feisty |
Fix Released
|
Medium
|
Michael Vogt |
Bug Description
The symptom is that if I do gksudo "update-manager -d" I get no option to upgrade and this error:
current dist not found in meta-release file
Looking at the code in:
/usr/lib/
It seems I had a zero sized METARELEASE_FILE. This was being created by the __init__ method of MetaReleaseCore:
try:
except IOError, e:
path = os.path.
if not os.path.
Then the download() method checks the mtime of METARELEASE_FILE in order to add an If-Modified-Since header to the http request. The mtime is very recent because we just touched it in __init__. Because of this urllib throws an exception with HTTP 304 Not Modified.
The exception handler then sees the empty METARELEASE_FILE:
except urllib2.URLError:
if os.path.
And sets metarelease_
Fix/workaround:
Taking the last-modified check out works, but probably the best thing to do is to check for a zero sized file at the same time as reading the mtime.
Changed in update-manager: | |
assignee: | nobody → mvo |
importance: | Undecided → High |
Sorry, I should add this is with update-manager 0.59.23 and a fresh feisty install.