Merge lp:~spiv/bzr/finishLogFile-robustness-531746 into lp:bzr
Proposed by
Andrew Bennetts
Status: | Merged |
---|---|
Approved by: | Vincent Ladeuil |
Approved revision: | no longer in the source branch. |
Merged at revision: | not available |
Proposed branch: | lp:~spiv/bzr/finishLogFile-robustness-531746 |
Merge into: | lp:bzr |
Diff against target: |
56 lines (+34/-1) 2 files modified
NEWS (+7/-0) bzrlib/tests/__init__.py (+27/-1) |
To merge this branch: | bzr merge lp:~spiv/bzr/finishLogFile-robustness-531746 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Vincent Ladeuil | Needs Fixing | ||
Review via email: mp+20722@code.launchpad.net |
Description of the change
This branch simply brute-forces away the traceback I reported in bug 531746.
I checked the C code for file.close, and I've verified by inspection that
* IOError with .errno==None from file.close only occurs for the 'concurrent operation' error, and
* it is safe to retry in this case, as no state relating to the file has been mutated.
Ideally perhaps we'd track down every single stray thread and make sure they are stopped before this point, but that's a rather daunting task.
(We may need to do some of that anyway soon, to track down and fix the thread leaks that cause 'cannot start new thread' errors, but we can at least squash this problem.)
To post a comment you must log in.
BB:tweak
I agree with the fix, but make it verbose, please, so we at least get
some indication that *something* occurred.
We'll probably want to get rid of that code in the future so a comment
mentioning the bug (or this merge proposal) will help get back the context
at that point.