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

Update condition on vvp_vmpage_error to match error code in RPC

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.11.0
    • None
    • 3
    • 9223372036854775807

    Description

      When a Lustre client is evicted (or otherwise suffers fatal RPC interruption), it is supposed to print a warning (ll_dirty_page_discard_warn) for any dirty pages (once per set...) which may have been lost due to the eviction.

      This is handled in vvp_vmpage_error, with a condition that checks the return code in the RPC.

      Unfortunately, LU-1030 changed the error code set on RPCs in an eviction from -EINTR to -EIO:
      http://review.whamcloud.com/#/c/2270/25/lustre/ptlrpc/client.c

      But did not update the check in vvp_vmpage_error:

                      if ((ioret == -ESHUTDOWN || ioret == -EINTR) &&
                           obj->vob_discard_page_warned == 0) {
                              obj->vob_discard_page_warned = 1;
                              ll_dirty_page_discard_warn(vmpage, ioret);
      

      It's still possible to get -EINTR here for an interrupted RPC (see osc_brw_redo_request), so I think we need to add -EIO to this mix.

      Cray noticed this because we were seeing dropped pages after evictions without the message printed. Adding -EIO to this condition resolves this.

      Attachments

        Activity

          People

            wc-triage WC Triage
            paf Patrick Farrell (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: