Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5716

Improve error handling on llog process

    XMLWordPrintable

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

          Activity

            People

              wc-triage WC Triage
              niu Niu Yawei (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: