APAR status
Closed as program error.
Error description
Error Message: N/A . Stack Trace: N/A . GC storm induced by System.gc in java.nio.Bits.reserveMemory when lot of small allocation request for DBB occurred during short time period.
Local fix
The problem can be alleviated by specifying a larger size as maxDirectMemorySize. The size should be good enough to hold the maximum DBB size during peak workload. Specifying the maxDirectMemorySize can sometimes result in Native Out-of-Memory as DBB size do not grow beyond this limit.
Problem summary
The Direct Byte Buffer (DBB)Garbage Collection (GC) storm can be triggered by two reasons: 1) Multiple threads (large number of threads) did the DBB allocation request in parallel and resulting in triggering System.gc() separately due to unavailability of space. 2) The DBB allocation trigger System.gc() which cleared enough space to satisfy the current allocation request. Similarly, many requests in the same pattern result in System.gc() to satisfy the current request without expanding the DBB space.
Problem conclusion
The JDK has been updated to use an atomic flag to ensure that only one thread issue System.gc() even if multiple threads did the DBB allocation in parallel and the remaining threads just wait for the current System.gc() to complete and do an expansion even if the current System.gc() did not clear enough space for other DBB allocation request to succeed. Also, the current thread do an expansion if there is not enough space available for the subsequent request (pro-active expansion) and there by handle the second cause of GC storm. . This APAR will be fixed in the following Java Releases: 7 SR9 (7.0.9.0) 7 R1 SR3 (7.1.3.0) 8 SR1 (8.0.1.0) 6 R1 SR8 FP4 (6.1.8.4) 6 SR16 FP4 (6.0.16.4)
Temporary fix
Comments
APAR Information
APAR number
IV68743
Reported component name
JAVA CLASS LIBS
Reported component ID
620700130
Reported release
600
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-01-19
Closed date
2015-03-31
Last modified date
2015-04-22
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JAVA CLASS LIBS
Fixed component ID
620700130
Applicable component levels
R600 PSY
UP
R700 PSY
UP
R800 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
22 April 2015