Troubleshooting Guidelines

This page documents the different troubleshooting resources you can use and the examples of troubleshooting typical problem scenarios.

 

Troubleshooting Resources

Following are the various resources you can use to troubleshoot:

Tools bundled with the SDK:

External tools:

SDK Help guide:

See the following sections in this Help to collect information to troubleshoot:

Log files:

 

Following are some examples for troubleshooting typical problem scenarios:

1. While requesting large data, the client application does not receive complete data from the Data ONTAP API, even when no error is received by the application.

Possible Causes:

  1. The server took a longer time to process the request because of a huge amount of data. This might trigger the server to reset the connection.

  2. The reset packets were received at the transport layer of the client host, which was not handled at the API layer of the client application. In this case, the client does not get the relevant error code.

Troubleshooting Method:

Begin a TCP packet trace using tools such as Ethereal, and check for any error messages from the server.

Workaround:

  1. Increase the connection timeout at the server.

  2. Use the iterative APIs when requesting a huge amount of data (for example,  thousands of qtrees).

 

2. The client application gets the error message 'Unsupported API'.

Possible Causes:

  1. An older version of Data ONTAP is used with a newer SDK that has new Data ONTAP API support.

  2. The Manage ONTAP SDK documentation erroneously included an unsupported API.

Troubleshooting Method:

  1. Check the Data ONTAP version used, and verify whether that API is compatible with the Data ONTAP version. See the Version Matrix for details.

  2. To view which APIs are supported in which version of Data ONTAP, see index.html at /doc/ontapi/ontapi_x.y/ for the different ONTAPI versions.

  3. Try using that API with the apitest tool to check whether there are any SDK documentation errors.

 

3. The client application gets the error message 'No such file or directory' (error number: 13001).

Possible Causes:

  1. There is a problem in the API handler code on Data ONTAP.

  2. The application was sending the wrong input (for example, the wrong iteration tag input to the iterative APIs).

  3. Race condition in the iterative APIs.

Troubleshooting Method:

  1. Check the Audit Log (/etc/log/auditlog) for API invocation history. It hints about possible concurrent calls of APIs leading to race conditions.

  2. Check the EMS Log (/etc/log/ems) for any errors that occurred while processing the API requests (for example, the wrong iteration tag)

Workaround:

Upgrade to Data ONTAP 7.3. Race condition of iterative APIs issue is fixed in Data ONTAP 7.3.

 

4. The storage system crashes when the client application sends a request to it.

Possible Causes:

  1. The API request took too long to process.

  2. An API bug was exposed because of improper input by the application.

Troubleshooting Method:

 To obtain guidance to troubleshoot, see Support.

Workaround:

  1. Use iterative APIs when requesting possibly a huge amount of data (for example, requesting data from thousands of qtrees).

  2. Long running process issue has been resolved in Data ONTAP 7.3 and  Data ONTAP 7.2.3P1.

 

5. The client application hangs.

Possible Causes:

  1. The storage system rebooted during API processing and the application was using blocking connection APIs.

  2. The network failed at the storage system.

Troubleshooting Method:

  1. Check uptime of the storage system (using the uptime command). If the uptime indicates that the storage system booted recently, then check whether there was a recent crash in the core file at /etc/crash/core-*. To obtain further guidance to troubleshooting, see Support.

  2. If there is no crash or no API-related message in the crash stack trace, then there could be a power failure or network-related problem.

Workaround:

  1. Restart the client application.

  2. Use non-blocking calls in C (use the set-time-out() function for changing blocking to non-blocking).

 

6. If the API input schema is not correct,  the API execution fails with the following errors: Missing input error (error number: 13006), or Extra input error (error number: 13115).

Possible Causes:

The API input schema validator sends this error if the API input does not match the input parameters set for that API.

The API input schema validator sends the Missing input error (error number: 13006) when there are missing input parameters. It sends the Extra input error (error number: 13115) when input contains extra parameters.

Troubleshooting Method:

Verify that all the input parameters in your application or script match the API documentation. Update the application or script if there is a mismatch.

Workaround:

As a workaround, disable the API input schema validator. To disable, use the following commands:

$ priv set advanced

The command priv set advanced is for advanced users. It is recommended that you use it only under NetApp personnel guidance. Such advanced commands may be potentially dangerous.

$ registry set state.api.schema_input_validate.enable off

$ priv set admin

You can use this workaround for Data ONTAP 7.3.1 and later.

 

7. If the API output schema is not correct, the API execution fails with the following errors: Missing output error (error number: 14513), or Extra output error (error number: 14514).

Possible Causes:

The API output schema validator sends this error if the API output does not match the input parameters set for that API.

The API output schema sends the Missing output error (error number: 14513) when there are missing output parameters. It sends the Extra output error (error number: 14514) when output contains extra parameters.

Troubleshooting Method:

This is a bug either in the API implementation or in the API documentation. Contact NetApp NGS and inform them about the bug.

Workaround:

Disable the API output schema validator. Following is the workaround for Data ONTAP 7.3.1 and Data ONTAP 7.3:

  1. For Data ONTAP 7.3.1 and later, use the following commands to disable the API output schema validator:

  2. $ priv set advanced

    $ registry set state.api.schema_output_validate.enable off

    $ priv set admin

     

  3. For Data ONTAP 7.3, use the following commands to disable the API output schema validator:

  4. $ priv set advanced

    $ registry set state.api.schema_validate.enable off

    $ priv set admin

The command priv set advanced is for advanced users. It is recommended that you use it only under NetApp personnel guidance. Such advanced commands may be potentially dangerous.

 

 


Related Topics