Excessive HashMap with Xwork causes high CPU load

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.

Problem

Performance of Confluence is is slow.

Diagnosis

Long running threads in heap dumps show something similar to this:

"TP-Processor112" daemon prio=10 tid=0x0000002d9a661400 nid=0x58b3 runnable [0x000000004a9cf000..0x000000004a9d1d30]
   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.get(HashMap.java:303)
        at com.opensymphony.xwork.util.OgnlUtil.compile(OgnlUtil.java:192)
        at com.opensymphony.xwork.util.OgnlUtil.setValue(OgnlUtil.java:188)
        at com.opensymphony.xwork.util.OgnlValueStack.setValue(OgnlValueStack.java:113)
        at com.opensymphony.xwork.util.OgnlValueStack.setValue(OgnlValueStack.java:97)

Cause

Due to CONF-17774, the xwork jar file bundled with Confluence itself can cause excessive HashMap.get operations.

Resolution

  1. Stop confluence:
  2. Move the <<confluence install>confluence/WEB-INF/lib/xwork-1.0.3.1.jar to a temporary backup directory (just in case we need to restore.
  3. Copy xwork-1.0.3.2.jar to <<confluence install>confluence/WEB-INF/lib/
    (no need to rename file).
  4. Start Confuence

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

Last modified on Mar 30, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.