Nodes/{name}/info/waiters: GET

Displays the GPFS daemon process (mmfsd) threads that are waiting for events at the specified node.

Availability

Available on all IBM Storage Scale editions.

Description

The GET scalemgmt/v2/nodes/{name}/info/waiters request gets a list of the daemon process (mmfsd) threads that are waiting for events at the specified node. The details that are retrieved from the response output are used for troubleshooting deadlocks and performance problems. For more information about the fields in the returned data structure, see mmdiag command.

Request URL

https://<IP address or host name of API server>:<port>/scalemgmt/v2/nodes/{name}/info/waiters
where
nodes
Specifies the resource for the GET call. Required.
waiters
Specifies the information that is required from the resource.

Request headers

Accept: application/json

Parameters

The following parameters can be used in the request URL to customize the request:
Table 1. List of request parameters
Parameter name Description and applicable keywords Required/optional
name The name of the node. Required.

Request data

No request data.

Response data

{
  "mmDiagWaitersParams": [
    {
      "threadId": "string",
      "threadAddr": string ,
      "threadName":string,
      "waitStartTime": time,
      "waitStartTime": time,
      "waitTime": duration,
      "isMonitored": yes | no ,
      "mutexAddr": "string",
      "mutexName": "string ",
      "auxReason": "string",
      "delayTime": "time ",
      "delayReason": "string ",
      "condVarAddr": "string",
      "condVarName": "string",
      "condVarReason": "string",} 
   ],
  "status": {
    "code": ReturnCode,
    "message": "ReturnMessage."
  }
}

The details of the parameters are provided in the following list:

mmDiagWaitersParams
An array of all the parameters used for the waiter threads.
'threadId":"Thread ID"
The ID of the thread.
"threadAdd":"Thread address"
The IP address of the thread.
"threadName":"Name"
The name of the thread.
"waitStartTime":"Start time"
The start time of the event.
"waitTime":"wait time"
The duration for which the thread is waiting in seconds.
"isMonitored":""
Specifies whether the thread is monitored.
"mutexAddr":"Address details"
The mutex address.
"mutexName":"Name"
The mutex name.
"auxReason":"Aux Reason"
Additional details on the aux reason.
"delayTime":"Delay time"
The delay duration of the event.
"delayReason":"Delay reason"
The reason for the delay.
"condVarAddr": "Condition details"
The details required for addressing issues.
"condVarName": "Condition name"
The name of the waiter problem.
"condVarReason": "Condition reason"
The reason for the waiter problem.

Examples

The following example lists the threads.

Request data:
curl -k -u user:password -X GET --header 'accept:application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4wMDE=' 'https://198.51.100.1:443/scalemgmt/v2/nodes/access-41/info/waiters
Response data:
Note: In the JSON data that is returned, the return code indicates whether the command is successful. The response code 200 indicates that the command successfully retrieved the information. Error code 400 represents an invalid request and 500 represents internal server error.
{
{
    "mmDiagWaitersParams": [{
		"threadId":"",
		"threadAddr":"",
		"threadName":"",
		"waitStartTime":"",
		"waitTime":"",
		"isMonitored":""
		"mutexAddr":"",
		"mutexName":"",
              "auxReason":"",
		"delayTime":"",
		"delayReason":"",
              "condVarAddr": "",
              "condVarName": "",
              "condVarReason": "",
	
	}],
    "status": {
        "code": 200,
        "message": "The request finished successfully."
    }