Troubleshooting

This chapter contains the following sections:

Troubleshooting an Application

Troubleshooting the Front-End of the App

  • Open the JavaScript console of the app in any browser, to troubleshoot the front-end of an app.

  • Monitor the API requests called when using the application.

Collecting Tech Support Logs for a Stateful App

  1. Log in to the tech support UI.

  2. Create an On Demand tech support policy.

  3. For an On Demand tech support policy, select For Apps option.

  4. Select the name of the app from the App drop-down list.

  5. The logs will be located in the /data2/logs/app-name directory. The app data will be located in the /gluster/gv0/app-name directory.

Troubleshooting the Backend of a Stateful App

You can modify the source files running in the backend on the service directory on the APIC. You must then uninstall and reinstall the app on the APIC for the changes to take effect.

Troubleshooting an Installed Application

To report any issues, regarding an installed application you can send an email to the app developer. Select the app to view the details such as contact information.

Troubleshooting RBAC

After installing an app, ensure that the Managed Objects (MO) for the app user, user role, and security domain are created.

  1. Log in to Visore to access the MIT for the app. See the Cisco APIC REST API Configuration Guide for information about using Visore.

  2. Run a query to verify that the aaaRole, appAppUser MOs are created for the app.

  3. Run a query to verify that the MO apPlugin is created. Verify that the fields configInfo is empty and configSt is populated as none.

Verifying Creation of Managed Objects for an Application

After you upload an app to APIC, ensure that the Managed Objects (MOs) firmwareFirmware and apPlugin are created.

  1. Log into Visore. See the Cisco APIC REST API Configuration Guide for information about using Visore.

  2. Run a query to verify that the MOs firmwareFirmware and apPlugin are created.

  3. For the apPlugin MO, verify that the fields permissions, permissionsLevel, pluginState, pluginType, and securityDomain are defined.

  4. For a stateful app, verify that the apPluginAppliance MO is created for all the APICs in a cluster. The leader APIC will have the fields cntrInstID, and cntrInstIP populated with the container ID and IP address.

Troubleshooting Scenarios

The following table summarizes common troubleshooting scenarios for developing an app for the Cisco ACI App Center.

Problem

Solution

The status of the docker is displayed as Restarting and you are unable to ssh to the docker container. This issue is encountered if there is an issue with the starting script or start.sh.

Access the app.log located at /data2/logs/<Vendor>_<AppID>/logs in the APIC to troubleshoot the issue.

Application Quorum

ACI architecture contains a cluster of independent nodes that work together to increase the availability and load distribution of services. If one of the cluster nodes fail, another node becomes active to provide the service or application. As a result, you experience minimum disruptions in services.

In this scenario, its possible to get into split-brain where the data sets become inconsistent due to writes from two separate nodes in case of network partition, or simultaneous writes on different nodes. This can cause data synchronization to fail.

Application Quorum ensures that a certain number of nodes must be online for the APP cluster to continue running. App Quorum helps in preventing the split-brain scenario. In App Quorum the data must be replicated to more than 50% of the nodes in the cluster for the WRITE operations to succeed.

This is to ensure that in case of failure, the app can statefully move to a different node without losing any persisted state. If a network partition occurs such that the majority nodes can not be written to, the underlying infrastructure becomes Read-Only and the app will be stopped to avoid data corruption and split-brain.

Application Quorum is set for glusterfs, which is the cluster filesystem infrastructure for the App Center.