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

fld_client_rpc() may run into deadloop

XMLWordPrintable

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

      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.

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

              Created:
              Updated:
              Resolved: