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

Improve error handling on llog process

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • Lustre 2.15.0
    • None
    • 3
    • 16032

      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.

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

              Created:
              Updated: