RESTful Management Services Leads to Memory Leak in weblogic.rmi.internal.OIDManager
(Doc ID 2263031.1)
Last updated on MAY 01, 2023
Applies to:
Oracle WebLogic Server - Version 10.3.6 to 12.2.1.2.0Information in this document applies to any platform.
Symptoms
After enabling RESTful Management Services, heap usage goes up over time, A heap dump shows the following:
5,050 instances of "javax.management.remote.rmi.RMIConnectionImpl", loaded by
"<system class loader>" occupy 11,455,520 (17.90%) bytes. These instances are
referenced from one instance of "java.lang.Object[]", loaded by "<system
class loader>"
Keywords
javax.management.remote.rmi.RMIConnectionImpl
java.lang.Object[]
Class Name
-----------------------------------------------------
weblogic.work.ExecuteThread @ 0xc3d50f68 [STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'
Busy Monitor, Thread'- contextClassLoader, defaultContextClassLoader, contextClassLoader
sun.misc.Launcher$AppClassLoader @ 0xc19e33e0
'- classes java.util.Vector @ 0xc23bc1a0
'- elementData java.lang.Object[20480] @ 0xc23c8988
'- [2615] class weblogic.rmi.internal.BasicServerRef$OIDManagerMaker@ 0xc02cd510
'- SINGLETON weblogic.rmi.internal.OIDManager @ 0xc02cd570
'- identityTable java.util.Collections$SynchronizedMap @0xc02cd588
'- m java.util.IdentityHashMap @ 0xc02cd5a8
'- table java.lang.Object[16384] @ 0xc323dc58
|- [1674] javax.management.remote.rmi.RMIConnectionImpl
|- [1476] javax.management.remote.rmi.RMIConnectionImpl
|- [7374] javax.management.remote.rmi.RMIConnectionImpl
|- [8112] javax.management.remote.rmi.RMIConnectionImpl
...
|- [2876] javax.management.remote.rmi.RMIConnectionImpl
|- [44] javax.management.remote.rmi.RMIConnectionImpl
|- [7166] javax.management.remote.rmi.RMIConnectionImpl
'- Total: 25 of 5,050 entries; 5,025 more
This issue can be easily duplicated with following similar script:
export myCookieFile='/tmp/ck123.txt'
for i in {1..100000}; do curl -v -c ${myCookieFile} -b ${myCookieFile} --user <USERNAME>:<PASSWORD> -H X-Requested-By:MyClient -H Accept:application/json -X GET http://<HOSTNAME>:<PORT>/management/tenant-monitoring/servers; done
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |