Troubleshooting

Use this section to read about known issues and for common troubleshooting steps.

AS3 general troubleshooting tips

  • Examine the restnoded failure log at /var/log/restnoded/restnoded.log (this is where AS3 records error messages)
  • Examine the REST response:
    • A 400-level response will carry an error message with it
    • If this message is missing, incorrect, or misleading, please let us know by filing an issue on Github.
  • Use AS3’s trace option to create a detailed trace of the configuration process for subsequent analysis. AS3’s trace option can be a powerful tool to learn about its working details and to review AS3’s operations in detail

Troubleshooting

I’m having trouble creating an application service without persistence

In order to create (or update) a declaration for an application service that does include persistence, you use the persistenceMethod property with a value of [] (empty square brackets), on your application service. This sets the persistence method on the application service (BIG-IP virtual server) to none. The line should look like: "persistenceMethods": []".

For example, a declaration snippet would look like the following:

 "service": {
     "class": "Service_HTTP",
     "virtualAddresses": [
         "10.0.1.10"],
     "persistenceMethods": [],
     "pool": "web_pool"
 },

I’m receiving an error with status of 500 when sending a large declaration

When sending a large declaration with hundreds of application services, you may experience a 500 error stating that the save sys config operation failed. In some cases, the operation succeeds, but you still receive the error.

If you experience this issue, restart restjavad (from the BIG-IP command line: `bigstart restart restjavad`), and then resend the declaration.


After upgrading to AS3 3.10.0, I’m experiencing issues with my Service Discovery pool configuration

In AS3 3.10.0, the name of the Service Discovery package changed. In prior versions, the package was named f5-appsvcs-discovery, and in 3.10.0 this changed to f5-service-discovery. If you were running AS3 3.8.0 or later, and upgraded to 3.10.0, the new package is installed, but the old package is not deleted. This means both Service Discovery applications are running, which may cause unpredictable pool configuration when you post a declaration after the upgrade. The procedure if slightly different depending on whether you have already upgraded to 3.10.0 or not.

If you are using AS3 3.8.0 or later, and have not yet upgraded to 3.10.0, before upgrading to 3.10.0, use the following guidance:

  1. Uninstall the previous version of AS3, and the Service Discovery package:
    • From the BIG-IP UI, click iApps > Package Management LX.
    • Check the boxes for f5-appsvcs and f5-appsvcs-discovery. You must uninstall both packages at the same time.
    • Click the Uninstall button, and then click Yes when prompted to uninstall the packages.
  2. Install AS3 3.10.0 (see Downloading and installing the AS3 package).

Important Uninstalling AS3 and the Service Discovery packages will not delete your current configuration, alter the BIG-IP configuration, or disrupt traffic.

If you have already installed AS3 3.10.0, use the following guidance to resolve this issue:

  1. Uninstall AS3 3.10.0, and both Service Discovery packages:
    • From the BIG-IP UI, click iApps > Package Management LX.
    • Check the boxes for f5-appsvcs, f5-appsvcs-discovery, and f5-service-discovery. You must uninstall all packages at the same time.
    • Click the Uninstall button, and then click Yes when prompted to uninstall the packages.
  2. Reinstall AS3 3.10.0 (see Downloading and installing the AS3 package). After you reinstall 3.10.0, you may have to refresh the UI to see the new Service Discovery package.

Important Uninstalling AS3 and the Service Discovery packages will not delete your current configuration, alter the BIG-IP configuration, or disrupt traffic.


I’m receiving a path not registered error when I try to post a declaration

If you are receiving this error, it means either you did not install AS3, or it did not install properly. The error contains the following message:

{
    "code":404,
    "message": "Public URI path no registered. Please see /var/log/restjavad.0.log and /var/log/restnoded/restnoded.log for details.".
    ...
}

If you receive this error, see Downloading and installing the AS3 package to install or re-install AS3.


I’m receiving the following error when using AS3 on BIG-IQ: “Failed to set tenant on BIG-IQ: java.lang.IllegalArgumentException: Cannot modify target address”

The entire message looks similar to:

{
    "message": "Failed to set tenant on BIG-IQ: java.lang.IllegalArgumentException: Cannot modify target address",
    "tenant": "Generic_Ten",
    "host": "localhost",
    "runTime": 531,
    "code": 422
}

This error message occurs when you attempt to create/modify a Tenant or something on a Tenant that exists on another BIG-IP. Note: Tenants must be unique among all BIG-IPs managed by BIG-IQ. Referencing the proper BIG-IP should solve this error.


I’m receiving the following error when using AS3 on BIG-IQ: “Cannot find any ADC root nodes for the target devices”

The entire message looks similar to:

{
    "message":"Cannot find any ADC root nodes for the target devices",
    "tenant":"TEST_Monitor",
    "host":"localhost",
    "runTime":11558,
    "code":422
}

This error means that the BIG-IQ has not discovered/imported LTM on that specific BIG-IP. To correct this issue, perform the following from the BIG-IQ UI:

  1. Click Devices > BIG-IP Devices. Note the Services column will likely show only Management.
  2. Click the Management link for the target BIG-IP.
  3. In the LTM section at the top of the page, click Discover.
  4. When the discovery process completes, click Import.
  5. Send the AS3 declaration again. You should no longer receive the error.

I just synchronized the BIG-IP configuration across devices in a Device Group, but it didn’t install AS3 on all the devices in the group

When you are using AS3 on a BIG-IP system that is part of a Device Group for high availability, if you want AS3 on all devices, you must manually install it on each BIG-IP in the group. Synchronizing the configuration between devices in a Device Group does NOT install AS3 on devices that do not have AS3 installed.

I can no longer find the AS3 source RPM on GitHub

Beginning with AS3 3.15.0, the AS3 RPM, Postman collection, and checksum files are no longer located in the /dist directory in the AS3 repository on GitHub. These files can be found on the GitHub Release, as Assets.

For example:

../_images/releases.png

You can find historical files on GitHub by using the Branch drop-down, clicking the Tags tab, and then selecting the appropriate release.


I cannot tell the difference between policyIAM and profileAccess objects in AS3

policyIAM and profileAccess both refer to the same BIG-IP APM object: an APM Access profile. While you can use either object as a part of your Service_HTTP or Service_HTTPS class, we recommend using policyIAM in your declarations to refer to an APM Access profile, as it more accurately adheres to industry-standard terminology.

For information on the APM Access profile, see APM documentation.


Why do some object names now have a trailing hypen in AS3 3.16.0?

AS3 3.16.0 and later introduce changes in how AS3 generates names for certain objects. Additionally, dots (.) and hypens (-) are now allowed in Application property names (AS3 3.17.0 allows dots and hyphens in Tenant and Application names).

For complete details, see Updates to object naming in AS3 version 3.16.0 and later


Why are the latest example declarations failing on AS3 3.19 and earlier?

In AS3 3.20, nearly all of the example declarations have been updated to remove any template that was specified, and rename any virtual services that used the name serviceMain to service. In AS3 3.20, the generic template is the default, which allows services to use any name.

Important

If you attempt to use one of these examples on a version prior to 3.20, they will fail.

To solve this issue, you have three options:

See this FAQ entry for more information.


Why is my BIG-IP experiencing occasional high CPU usage and slower performance?

If your BIG-IP system seems to be using a relatively high amount of CPU and degraded performance, you may be experiencing a known issue with the restjavad daemon. This is an issue with the underlying BIG-IP framework, and not an issue with AS3.

More information
Restjavad may become unstable if the amount of memory required by the daemon exceeds the value allocated for its use. The memory required by the restjavad daemon may grow significantly in system configurations with either a high volume of device statistics collection (AVR provisioning), or a with relatively large number of LTM objects managed by the REST framework (SSL Orchestrator provisioning). The overall system performance is degraded during the continuous restart of the restjavad daemon due to high CPU usage.

See Bug ID 894593 and Bug ID 776393.

Workaround
Increase the memory allocated for the restjavad daemon (e.g. 2 GB), by running the following commands in a BIG-IP terminal.

tmsh modify sys db restjavad.useextramb value true
tmsh modify sys db provision.extramb value 2048
bigstart restart restjavad