Summary

AppDynamics has identified a corner case where a 32‐bit .NET application running on a 64‐bit server can experience a crash/hang. This issue is the result of a CLR Profiler API call made by the AppDynamics agent to gather callstack information for snapshots where the callstack has become corrupted. Pending a permanent fix, you can workaround this issue by making the configuration change described below.

Affected Software

This issue affects 32-bit versions of the agent running on a 64-bit server.

Impact

Application hang or crash: Instrumentation of a 32-bit application on a 64-bit server can in rare cases result in a crash or hang.

Workaround

You can work around this issue by changing the method in which AppDynamics collects callstack information for snapshots. This alternative method still provides full visibility into the callstack for slow business transactions, however timings will only be available for exit methods (calls made by the application to SQL/HTTP/WCF/ASMX/MSMQ/etc backends). 

Implement the workaround by following the steps below:

  1. In the Controller UI, click App Servers and then any tier to open the tier dashboard.

  2. In the top right corner, click Actions then Configure App Server Agent.

  3. In the left menu of the new window, choose whether to apply the configuration globally or to an individual tier or node.

  4. Select Use Custom Configuration

  5. Click the + sign to add a new agent node property.

    1. Name = disable-sampling

    2. Type = Boolean

    3. Value = True
  6. This change will not require a restart of instrumented processes.

Resolution

This issue is fixed in the .NET Agent version 4.1.10.4 and versions 4.2.3+. Customers who are unable to upgrade the .NET Agent should use the workaround provided.