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

setting OBD_FAIL_OSC_MATCH would cause an infinite loop

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • Lustre 2.15.0
    • 3
    • 9223372036854775807

    Description

      Setting OBD_FAIL_OSC_MATCH would cause an infinite call and return loop between osc_dlmlock_at_pgoff() and osc_match_base(). This fail loc is only set in sanity.sh test_62() which is never called.

      # bug 2330 - insufficient obd_match error checking causes LBUG                            
      test_62() {
              [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
              f="$DIR/f62"
      	echo foo > $f
      	cancel_lru_locks osc
              lctl set_param fail_loc=0x405
              cat $f && error "cat succeeded, expect -EIO"
              lctl set_param fail_loc=0
      }
      # This test is now irrelevant (as of bug 10718 inclusion), we no longer
      # match every page all of the time.
      #run_test 62 "verify obd_match failure doesn't LBUG (should -EIO)"
      

      The OBD_FAIL_CHECK(OBD_FAIL_OSC_MATCH)) test in osc_match_base() should be removed along with test_62() in sanity.sh.

      Once this is done the return type of osc_match_base() should be changed from int to enum ldlm_mode.

      More generally, since osc_lock_match() is only called osc_dlmlock_at_pgoff() there could be several simplifications by just eliminating the former function.

      Attachments

        Activity

          People

            wc-triage WC Triage
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: