Bug 1105160

Summary: [GSS] (6.3.x) High CPU in concurrent access to the JSSESupport keySizeCache map
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Aaron Ogburn <aogburn>
Component: WebAssignee: Aaron Ogburn <aogburn>
Status: CLOSED CURRENTRELEASE QA Contact: Michal Karm Babacek <mbabacek>
Severity: unspecified Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.0CC: kkhan, mbabacek, smumford
Target Milestone: ER9   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
The keySizeCache in JSSESupport was not properly synchronized in previous releases of JBoss EAP 6. This meant concurrent access to the JSSESupport keySizeCache could result in high CPU hash map loops. In this release of the product, access to the keySizeCache in JSSESupport is now synchronized and concurrent access to the keySizeCache does not occur.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-06 14:36:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1104206    
Bug Blocks:    

Description Aaron Ogburn 2014-06-05 13:43:13 UTC
The keySizeCache map in JSSESupport isn't protected from concurrent access and so can cause high CPU loops. The complete fix from the tomcat bug that had this map access synchronized wasn't used:

https://issues.apache.org/bugzilla/show_bug.cgi?id=47744

Comment 1 Aaron Ogburn 2014-06-05 13:44:19 UTC
Fixed by the JBossWeb 7.4.5 component upgrade

Comment 2 Michal Karm Babacek 2014-07-11 19:48:30 UTC
I'm not sure I managed to reproduce it reliably, but the cache size is synchronized properly in the code, accordingly to the upstream tomcat patch. Switching to VERIFIED.