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

fld_client_rpc() may run into deadloop

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.10.0
    • Lustre 2.7.0
    • None
    • 3
    • 9223372036854775807

    Description

      In fld_client_rpc():

              if (rc != 0) {
                      if (imp->imp_state != LUSTRE_IMP_CLOSED && !imp->imp_deactive) {
                              /* Since LWP is not replayable, so it will keep
                               * trying unless umount happens, otherwise it would
                               * cause unecessary failure of the application. */
                              ptlrpc_req_finished(req);
                              rc = 0;
                              goto again;
                      }
                      GOTO(out_req, rc);
              }
      

      If the connection is broken, this function will run into an dead loop. I think we'd reshape the function somehow to make it interruptable, otherwise, if connection never being established, caller will stuck in this function forever.

      Seems fld_update_from_controller() has similar problem.

      Attachments

        Issue Links

          Activity

            People

              ys Yang Sheng
              niu Niu Yawei (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: