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

Incorrect pid printing in ptlrpc_send_new_req

    XMLWordPrintable

Details

    • 3
    • 9223372036854775807

    Description

      It appears that ptlrpc_send_new_req message prints pid as always 0:

      00000100:00080000:5.0:1454959735.275832:0:27539:0:(client.c:1385:ptlrpc_send_new
      _req()) @@@ req from PID 0 waiting for recovery: (FULL != DISCONN)  req@ffff8800
      3f386b80 x1525630506782200/t0(0) o13->lustre-OST0000-osc-ffff8800cdc0f000@192.16
      8.10.227@tcp:7/4 lens 224/368 e 0 to 0 dl 0 ref 1 fl Rpc:W/0/ffffffff rc 0/-1
      

      This is because the message itself is printed before we set the value in the request:

                      DEBUG_REQ(D_HA, req, "req from PID %d waiting for recovery: "
                                "(%s != %s)", lustre_msg_get_status(req->rq_reqmsg),
                                ptlrpc_import_state_name(req->rq_send_state),
                                ptlrpc_import_state_name(imp->imp_state));
                      LASSERT(list_empty(&req->rq_list));
                      list_add_tail(&req->rq_list, &imp->imp_delayed_list);
                      atomic_inc(&req->rq_import->imp_inflight);
                      spin_unlock(&imp->imp_lock);
                      RETURN(0);
              }
      ...
              lustre_msg_set_status(req->rq_reqmsg, current_pid());
      

      As such we should either move the set_status before that printing or just do current_pid() in that message which is likely even better.

      Attachments

        Activity

          People

            sbuisson Sebastien Buisson (Inactive)
            green Oleg Drokin
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: