-
Notifications
You must be signed in to change notification settings - Fork 136
Conversation
Signed-off-by: Mathieu Borderé <mathieu.bordere@canonical.com>
Codecov Report
@@ Coverage Diff @@
## master #255 +/- ##
==========================================
+ Coverage 87.71% 87.88% +0.16%
==========================================
Files 107 107
Lines 15325 15373 +48
Branches 2372 2381 +9
==========================================
+ Hits 13443 13511 +68
+ Misses 1701 1681 -20
Partials 181 181
Continue to review full report at Codecov.
|
1108413
to
105983b
Compare
@freeekanayaka I'm not entirely sure how to proceed, there's this user with the problem as described in the PR description. I think the general approach to truncating the in-memory and on-disk logs is OK for the test Should I adapt the implementation to try and truncate the corrupt segment anyway until |
105983b
to
f05ec00
Compare
I didn't look too close at the situation, but yeah I recall that generic handling of I/O errors that are not "disk full" might be tricky. Since we expect non-"disk full" errors to be so rare (and probably severe) I think that the approach of "stopping the line" by shutting everything down immediately, and possibly let Later down the road more sophisticated strategies might be applied, but I'd wait to see the details of the I/O errors happening in real world. PS: I'm not sure how well the "disk full" errors are handled these days, but that's probably still an area of improvement? |
Yeah, still need to take a closer look at handling disk-full situations. |
f05ec00
to
0a671e5
Compare
0a671e5
to
2e91c3e
Compare
To revisit. |
Bug observed in LXD cluster:
appendFollowerCb
is called with non-0 status after some I/O failure.appendFollowerCb
is called with 0 status, I/O completed for the 2 new entries.r->last_stored
by 2, while it has a gap in it's on disk log entries.Now, when disk I/O fails, we truncate the in-memory log and subsequent writes that see a truncated in-memory log, will try to truncate the on-disk log.