[master] errors during cleanup mask underlying errors (eg TooManyConcurrentRequests)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Andrew Bennetts |
Bug Description
There is a general problem in bzr that errors raised during finalization can mask other more important or illuminating exceptions raised earlier on. See for example <https:/
We need to have some way to make the earlier error visible.
Constraints:
* Errors during cleanup should not be lost: if they indicate something has really gone that should be visible to the user, to tests, and to API users. (Consider a bug causing an UnboundLocalError during cleanup.)
* Code that runs a cleanup through a try/finally block should not be overly complicated.
I propose to make all code likely to be called at cleanup (unlock, abort_write_group, etc) go through a common higher-
Related branches
- bzr-core: Pending requested
-
Diff: 798 lines9 files modifiedbzrlib/cleanup.py (+172/-0)
bzrlib/decorators.py (+28/-0)
bzrlib/lockable_files.py (+2/-2)
bzrlib/lockdir.py (+2/-0)
bzrlib/progress.py (+3/-0)
bzrlib/remote.py (+3/-1)
bzrlib/revisiontree.py (+2/-0)
bzrlib/tests/__init__.py (+182/-0)
bzrlib/tests/test_cleanup.py (+259/-0)
- John A Meinel: Approve
-
Diff: 863 lines6 files modifiedNEWS (+5/-0)
bzrlib/cleanup.py (+177/-0)
bzrlib/commit.py (+137/-148)
bzrlib/repository.py (+1/-1)
bzrlib/tests/__init__.py (+1/-0)
bzrlib/tests/test_cleanup.py (+280/-0)
Changed in bzr: | |
assignee: | Martin Pool (mbp) → Andrew Bennetts (spiv) |
Changed in bzr: | |
status: | Confirmed → In Progress |
summary: |
- errors during cleanup mask underlying errors + errors during cleanup mask underlying errors (eg + TooManyConcurrentRequests) |
summary: |
- errors during cleanup mask underlying errors (eg + [master] errors during cleanup mask underlying errors (eg TooManyConcurrentRequests) |
Changed in bzr: | |
status: | In Progress → Fix Released |
milestone: | none → 2.1.0b1 |
Sounds fine to me