Repository navigation
avoid crash after concurrent undo action failure - #476
Conversation
|
(Writing this for my future self as much as anybody, but I would welcome scrutiny!) In terms of analyzing this change: the only behavioral change here is to relax two assertions that previously caused a correct program to panic. Does the program now do the right thing there? There are two obvious cases. First is where two undo actions fail The second case is where a log is recovered that contains two undo action failures. Recovery calls Both of these cases are exercised in new test cases in this PR. Can we make more general statements?
We might also look at callers of those functions, which now continue on when they wouldn't have before.
It's unfortunate that we don't document and enforce stronger invariants in this code, but as discussed, this is all a lot less rigorous than we'd like. Given RFD 704, it's not clear that it's worth investing a lot more here, at least right now. |
Fixes #473.