Known solutions and workarounds

This page details a number of resolved issues and solutions to issues that have been reported to the DESK Support team.

Alpine Linux/musl-libc, Memory allocation


Issue:

On musl-libc-based Alpine Linux systems, each executable has its memory limits which are controlled via the MPROTECT parameter. When monitoring an musl-libc-based Alpine Linux application with DESK OneAgent, your process (for example, a Java process) may exceed the specified memory limit. When this is the case, the subsequent memory allocation will fail with a message like There is insufficient memory for the Java Runtime Environment to continue.

Solution:

To overcome such issues, it's recommended that you ignore the memory protection parameter for executables that you plan to monitor with DESK OneAgent. To do this, you must install the paxctl tool using:

apk add paxctl

You can then remove the memory check, for example

paxctl -m /usr/lib/jvm/java-1.8-openjdk/jre/bin/java

For 3rd-party executables not shipped by Alpine, you'll be notified that

<file> does not have a PT_PAX_FLAGS program

In such instances, convert your file beforehand, for example

paxctl -C /usr/lib/jvm/java-1.8-openjdk/jre/bin/java

PHP running in Apache on Windows, Stack size


Issue:

The default stack size of Apache on Windows is 1 MB, which is rather low compared to other platforms. Therefore, the additional memory footprint involved in enabling DESK monitoring for PHP can lead to stack overflows.

Solution:

This problem can be solved by changing the stack size to 8 MB, which is the default on Linux.

<IfModule mpm_winnt_module>
   ThreadStackSize 8388608
</IfModule>

Cloud Foundry, IBM WebSphere Liberty buildpack


Issue:

The recommended version of IBM WebSphere Liberty buildpack changed from v3.7-20170118-2046 to v3.9-20170419-1403 due to known issues related to a limitation of the JVM command line to 512 characters and an issue with trailing slashes.

Solution:
Please use IBM WebSphere Liberty buildpack version v3.9-20170419-1403+

Host, Ubuntu 16.10


Issue:

Due to compile optimization changes in the C runtime packages provided with Ubuntu 16.10, new stack-alignment requirements have been introduced. OneAgent versions earlier than 1.103.237 don't yet fulfill these requirements. Using versions of OneAgent earlier than 1.103.237 may lead to process crashes during dynamic symbol resolution (dlsym) calls in the C runtime.

Solution:

Update to OneAgent version 1.103.237 or higher. This version of OneAgent will be available to all DESK environments by October 20th, 2016. Here are the instructions for upgrading OneAgent:

  1. Select Settings > Preferences from the navigation menu (only visible to environment admins).
  2. Ensure that the Automatically update OneAgent instances setting is enabled. OneAgent version 1.103.237 will be automatically deployed once it’s available on your environment. If Automatically update One Agent instances is disabled, select OneAgent version 1.103.237 or higher and click Update now.

Java, IBM J9


Issue:

In rare situations, when implementing a try-catch-finally block and catching a multi-type exception with Java 7, the exception is caught, but the source code in the finally block doesn't execute. This issue has been fixed since IBM J9.

Solution:

Fixed since IBM J9

  • 7 R1 SR2 FP11 (7.1.3.0)

  • 7 SR9 (7.0.9.0)

  • 8 SR1 (8.0.1.0)

Source:

Java, WebSphere MQ , JMS


Issue:

When using WebSphere MQ via JMS, DESK isn't always able to determine the queue name and may report the queue name as 'unavailable'. This happens when MQ messages have not been properly mapped to JMS.

Solution:

Follow the IBM documentation for mapping JMS messages onto IBM MQ messages. Once the MQRFH2 header has been properly mapped, DESK will pick up the correct queue name.

Java, Oracle HotSpot/OpenJDK


Issue:

A known issue in Oracle HotSpot and OpenJDK can lead to a JVM deadlock in ThreadTimesClosure or incomplete CPU timings of background activities. Be sure to update to Oracle HotSpot 6u38/7u40 or OpenJDK 7u45 and higher to benefit from this solution.

Solution:

Fixed in Oracle HotSpot 6u38/7u40 and OpenJDK 7u45

Source:

Issue:

A known issue in Oracle HotSpot and OpenJDK can lead to a JVM crash when a JVMTI agent is loaded, class data sharing is turned on, and the classes.jsa file exists. This is not normally the case, but it does occur in Docker environments, especially with Java 11 where class data sharing is set to auto.

Solution:

Change the java command line to turn off class data sharing via -Xshare:off.

Source:

Java, Spring, AspectJ


Issue:

Some customers have reported the below NullPointerException during startup of their Java Spring or AspectJ applications. AspectJ has resolved this issue in version 1.6+. Ensure that the classpath is updated to use AspectJ 1.6+.

Message: NullPointerException at

`org.aspectj.weaver.reflect.Java15AnnotationFindergetAnnotations
  (Java15AnnotationFinder.java:109)`

Solution:

Fixed since Spring 2.5.4/AspectJ 1.6

Source:

Java/Real User Monitoring/Apigee


Issue:

Real User Monitoring of Java applications may trigger a ClassCastException error upon a type cast to the implemented HttpServletRequest interface because DESK replaces the original HttpServletRequest implementation with a RequestWrapper for automatic JavaScript tag injection.

This crash also occurs for customers using Apigee.

Solution:

You have a few options:

  1. Change your source code so that it doesn't expect a specific implementation of the HttpServletRequest interface.
  2. If you're using a 3rd party framework, you can reach out to your framework vendor.
  3. For Apigee, we've disabled Real User Monitoring auto-injection. Manual Real User Monitoring injection isn't affected and can be used as a workaround.
  4. You can use a web server in front of Java—the web server will auto-inject the Real User Monitoring tag and thereby avoid the crash.

Source:
n/a

Java CPU overhead


Issue:

Periodically, spikes of CPU usage or overall CPU usage occur when instrumenting Preview for JBoss. Querying JMX measures cause these spikes. JMX calls done in 10 sec intervals lead to a CPU spike on certain versions affected by this JBoss bug. Versions 6.4.x are considered to be problematic.

Solution:

Solution is to upgrade to Preview for JBoss and/or contact RedHat.

Source:

UI/Docker


Issue:

With Docker versions 1.10.3 - 1.11, CPU, memory, and network container statistics are missing from the UI because data requests sent to containers via docker stats time out. Restarting Docker addresses this issue temporarily.

Solution:

Fixed since Docker 1.12. Upgrade to Docker 1.12.

Source:

UI/IIS


Issue:

Due to a lack of Windows Performance Counters, the Further details tab may be not visible in the UI for IIS processes, even following IIS restart. No errors are raised during OneAgent injection.

Solution:

This can occur if there is a problem with the Performance Counter Library in the Windows Registry. To check this:

Using a Windows command, verify that the metrics are not retrievable from the Windows Registry: typeperf "\Process(w3wp*)\ID Process" -sc 15 Alternatively, use Perfmon.exe to see if data is available for the counters or to confirm that the counters don't exist.

Consult Microsoft technical documentation to rebuild the performance libraries in the registry.

Source:

.NET, IIS


Issue:

If IIS monitoring is enabled for an ASP.NET application using .NET >= 4.5 and < 4.6, in rare circumstances the application could fail with an unhandled NullReferenceException.

Message: System.NullReferenceException at

`System.Web.Security.Roles.IsUserInRole(String username, String roleName)`

Solution:

Fixed since .NET 4.6.

.NET, Cassette


Issue:

Customers reported a crash when using the Cassette web asset management library.

Message: Crash at

`[TinyIoCResolutionException: Unable to resolve type: Cassette.Views.BundlesHelper]`

Solution:

As a workaround, you can use the file system as Cassette's cache by specifying a directory in your web.config file as follows:

`<cassette cacheDirectory="App_Data\Cassette" />`

Potentially fixed in v2.4.1

Source:

.NET, ConfuserEx


Issue:

Using the assembly-obfuscation tool ConfuserEx can sometimes crash .NET applications because the ConfuserEx assembly doesn't allow "profilers" like DESK.

Message: Crash at

`System.Environment.FailFast(System.String)`

Solution:

Disable ConfuserEx obfuscation or disable DESK monitoring at the process level.

Source:

Real User Monitoring, Chrome


Issue:

Real User Monitoring analysis with Google Chrome can lead to browser crashes when some resources can't be loaded.

Message: Crash at

`window.performance.getEntriesByType('resource')`

Solution:

Until Chrome provides a fix for this issue, make sure that all resources are loaded successfully (no 301 responses) or disable W3C resource timing for third party/CDN.

To disable W3C resource timing for third party/CDN:

  1. Select Applications from the navigation menu.
  2. Select the application you want to edit.
  3. Click the More (...) button.
  4. Click Edit.
  5. Click Content capture.
  6. Set the W3C resource timing for third party/CDN switch to Off.

Source:

Agentless Real User Monitoring, Chrome


Issue:

Users may see a browser warning in Chrome's Developer Console if they are on slow connections such as 2G networks.

Message: A Parser-blocking, cross-origin script, https://js-cdn.desk.com/jstag/148709fdc4b/ruxitagent_2fgjqrx_10111170210093847.js, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity. See https://www.chromestatus.com/feature/5718547946799104 for more details.

Solution:

  1. Select Applications from the navigation menu.
  2. Select the application you want to configure.
  3. Click the Browse (...) button and select Edit.
  4. In the Setup section, select Agentless monitoring setup.
  5. Disable the Easy monitoring switch.

The only downside of this change is that every time you make a configuration change you have to copy and re-inject the Real User Monitoring JavaScript tag again. Therefore, it's better to use the REST API to get the updated tag.

Source:

Real User Monitoring, jQuery


Issue:

In the course of Real User Monitoring, failing asynchronous JQuery user actions lead to action timeouts after 180 seconds, but no error is reported. This is caused by a known jQuery limitation.

Solution:

JQuery has not provided a fix for this problem. To resolve this issue, fix the failing jQuery call on your end (for example, an AJAX request to a missing resource) or disable jQuery in XHR (Ajax) detection settings and enable basic XHR detection.

To disable JQuery detection and enable basic XHR detection:

  1. Select Applications from the navigation menu.
  2. Select the application you want to edit.
  3. Click the More (...) button.
  4. Click Edit.
  5. Click XHR (Ajax) detection.
  6. Set the JQuery, Backbone.js switch to Off.
  7. Set the Basic XHR detection switch to On.

Source:

Real User Monitoring, Ext JS


Issue:

In large, complex Ext JS applications customers experienced client side response time degradation like a web browser notification about an unresponsive script. Due to the internal event handling mechanism of Ext JS the application can be running slow if too many events are triggered which are captured by the real user monitoring JavaScript tag.

Solution:

Turn off extended Ext JS event capturing in Real User Monitoring settings.

  1. Select Applications from the navigation menu.
  2. Select the application you want to edit.
  3. Click the More (...) button.
  4. Click Edit.
  5. Click Advanced setup detection.
  6. Add exteventsoff=1 into the Custom configuration properties text field within the JavaScript library settings.

If certain user actions are not captured afterwards, use the JavaScript API to trigger actions manually.

Real User Monitoring, Salesforce


Issue: When injecting RUM into Salesforce, you may experience the application stuck in "loading" when viewing records from a search result. When this happens, browser debugging displays the JavaScript error: Wrong number of arguments or invalid property assignment on b.b.open,arguments,b.b.

This occurs when the DESK JavaScript tag is not the first JavaScript loaded on the page. There can be JavaScript code loading in the heading that has a negative impact on the DESK JavaScript tag.

Solution: Shifting the JavaScript tag to load before any JavaScript resolves this issue.


Issue: DESK RUM isn't working for Salesforce applications based on the Lightning Component Framework.

The reason for this is that many Salesforce applications and offerings are based on Lightning Component Framework. This framework has a security architecture called Lightning Locker, which restricts access to DOM elements and therefore influences the DESK RUM JavaScript code. Whenever the Locker code is loaded and executed before the DESK RUM JavaScript code, monitoring won't work, independently of whether you add the RUM JavaScript tag or you use our Browser monitor extension.

Solution: There is currently no solution from the DESK side. Please contact Salesforce support. Perhaps there is a way to whitelist the DESK RUM JavaScript code.

Real User Monitoring, Salesforce Commerce


Issue:

There is currently an incompatibility between DESK Agentless RUM and Salesforce Commerce. This is due to a reserved character within the Salesforce compiler.

Solution:

Replace # with ${'#'} in the DESK JavaScript tag.

Real User Monitoring, Visually complete, Internet Explorer 11


Issue:

Enabling the Visually complete application setting while using DESK with Internet Explorer 11 can lead to a complete page crash or hanging in cases where heavy <table> or table-like (using the style attribute display:table) DOM mutations occur. This tends to be more common with single-page applications. Simply monitoring mutations with the MutationObserver, as is done for Visually complete, can crash the page once it's loaded. Here is a simple reproduction of the issue with a table-like element mutation crash.

More information on Visually complete and speed index

Note: Speed index and Visually complete metrics are only available on browsers that support mutationobservers. This includes the following browsers:

  • Microsoft Internet Explorer 11
  • Microsoft Edge 15 or later
  • Firefox 57 or later
  • Google Chrome 61 or later

Speed index is available only for load actions. Visually complete is available for all actions, including load actions, but not for AJAX requests that don't affect the DOM.

Solution:

Microsoft fixed the bulk of this issue for <table> element mutations in a recent update. Update Internet Explorer 11 to this version to fix this issue in most cases.

Elements with the style attribute display:table still run into this problem following update of Internet Explorer 11. For this reason, we've created a feature flag you can use to disable Visually complete within Internet Explorer 11 only. To enable this feature flag, set the custom configuration value "dmo=1".

Real User Monitoring, Android, Build cache misses


Issue:

OneAgent SDK for Android is published as Android archive library (AAR) and contains internal jars. Android Gradle plugin version 3.1, 3.2 and 3.3 use a different logic to process internal jars of an AAR file. In some cases this can lead to different input values for your transform tasks and result in a cache miss that increases the build time. This behavior only affects the build cache and not the APK or AAB file.

Solution:

Upgrade to the latest Android Gradle plugin version.

Redhat Enterprise Linux 7.4


Issue:

RHEL v7.4 (upgraded from v7.3 or fresh install) comes with the stix-fonts package. When this package is installed, the default font changes from Utopia to STIX. As a result, Java default fonts are mapped to STIX, including the sans-serif font family. However, the STIX fonts don't seem to be compatible with Java (OpenJDK + IBM JDK) and cause exceptions and bad calculated artefacts when using java.awt, which is the case with JasperReports.

For DESK Managed, which is based on Java, this issue was experienced as a problem in Smartscape. More specifically, selecting any item in Smartscape shows an unspecific error message that something went wrong.

Solution:

Create a file /etc/fonts/local.conf with the content shown below to explicitly make Utopia the default font again.

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>dialog</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>dialoginput</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
</fontconfig>

Source:

IBM HTTP Server (IHS) 8.5


Issue:

IHS 8.5 on Linux crashes with segmentation fault.

Solution:

Disable prelink on IHS server.

Source:

Adobe Dispatcher


Issue:

When using Adobe Dispatcher with a web server monitored by DESK OneAgent, the RUM JavaScript agent tag is injected twice into the HTML page. As a consequence, the RUM JavaScript agent will be executed twice at the browser, producing unnecessary load (e.g. the beacons will be sent twice, etc.).

The reason for this is that Adobe Dispatcher doesn't cache HTTP response headers by default and so the header X-OneAgent-JS-Injection "gets lost" for already injected sites, which are served from the cache. If this header is not present, the webserver agent injects (another) RUM JavaScript agent tag, even if it's already present in the cached content.

Solution:

The dispatcher needs to be configured to cache the response header "X-OneAgent-JS-Injection". To avoid double injection of the RUM JavaScript agent tag when using Adobe Dispatcher with a web server monitored by DESK OneAgent, add "X-OneAgent-JS-Injection" to the /cache/headers section of the Adobe Dispatcher configuration:

/cache
{
    # Cache configuration
    # <existing configuration>
    # ...

    /headers
    {
        "X-OneAgent-JS-Injection"
    }
}