Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Lustre 2.15.0
-
None
-
3
-
16032
Description
Current error handling in llog_process_thread() is dangerous:
if (unlikely(rc == -EIO && loghandle->lgh_obj != NULL)) { /* something bad happened to the processing of a local * llog file, probably I/O error or the log got corrupted.. * to be able to finally release the log we discard any * remaining bits in the header */ CERROR("Local llog found corrupted\n"); while (index <= last_index) { if (ext2_test_bit(index, llh->llh_bitmap) != 0) llog_cancel_rec(lpi->lpi_env, loghandle, index); index++; } rc = 0; }
It'll remove all records even if a process callback returns -EIO, that should be improved somehow, or at least we'd make sure no callbacks can return -EIO.
Attachments
Issue Links
- is related to
-
LU-7010 "Local llog found corrupted" during DNE2 recovery
- Resolved