Rung WebLogic server with 1.8.0 encounters this error:
Caused by: java.lang.IllegalArgumentException: committed = 86482944 should be < max = 50331648
at java.lang.management.MemoryUsage.<init>(MemoryUsage.java:162)
at sun.management.MemoryImpl.getMemoryUsage0(Native Method)
at sun.management.MemoryImpl.getNonHeapMemoryUsage(MemoryImpl.java:75)
... 37 more
There is a bug in jmm_GetMemoryUsage here -- if a memory region does not define a maximum size, then the total_max is not updated:
if (u.max_size() == (size_t)-1) {
has_undefined_max_size = true;
}
if (!has_undefined_max_size) {
total_max += u.max_size();
}
But there memory region does define a committed size -- so the committed size is increased and the total_max size is not, and so the committed size ends up larger than the total_max size.
This occurs at least for the Metaspace region (pool->name() returns Metaspace) Which means, I suppose, that the metaspace region has a bug that it is not returning the maximum size? But also the management code should correctly report the maximum size in this instance as undefined rather than throwing an exception.