jmap memory mapping tool is broken due to aggressive stripping of libjvm.so
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openjdk-6 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Lucid |
Fix Released
|
Undecided
|
Unassigned | ||
Maverick |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu.
Description: Ubuntu 9.10
Release: 9.10
2) The version of the package you are using, via 'apt-cache policy packagename' or by checking in Synaptic.
openjdk-6-jre:
Installed: 6b16-1.6.1-3ubuntu3
Candidate: 6b16-1.6.1-3ubuntu3
Version table:
*** 6b16-1.6.1-3ubuntu3 0
999 http://
999 http://
100 /var/lib/
6b16-
999 http://
3) What you expected to happen
You can get memory map dump of a JVM instance with jmap tool, see http://
Example with Sun JDK 1.6.0_20-b02 which works correctly.
(11:18:
1700 TCPMon
1764 Jps
(11:18:
Attaching to process ID 1700, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 16.3-b01
using thread-local object allocation.
Mark Sweep Compact GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 922746880 (880.0MB)
NewSize = 5439488 (5.1875MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 88080384 (84.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 17301504 (16.5MB)
used = 15400960 (14.6875MB)
free = 1900544 (1.8125MB)
89.015151515
Eden Space:
capacity = 15400960 (14.6875MB)
used = 15400960 (14.6875MB)
free = 0 (0.0MB)
100.0% used
From Space:
capacity = 1900544 (1.8125MB)
used = 0 (0.0MB)
free = 1900544 (1.8125MB)
0.0% used
To Space:
capacity = 1900544 (1.8125MB)
used = 0 (0.0MB)
free = 1900544 (1.8125MB)
0.0% used
tenured generation:
capacity = 38404096 (36.625MB)
used = 0 (0.0MB)
free = 38404096 (36.625MB)
0.0% used
Perm Generation:
capacity = 21757952 (20.75MB)
used = 13456432 (12.83305358886
free = 8301520 (7.916946411132
61.846041392
4) What happened instead
Here's what happens with Ubuntu's broken openjdk-6:
(11:20:
1883 Jps
1863 TCPMon
(11:20:
Attaching to process ID 1863, please wait...
sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.jvm.
at sun.reflect.
at sun.reflect.
at sun.reflect.
at java.lang.
at sun.tools.
at sun.tools.
Debugger attached successfully.
sun.jvm.
The problem is that some needed symbols are stripped from libjvm.so. Installing openjdk-6-dbg package doesn't fix the issue and you shouldn't need this huge package anyway for the functionality.
This bug has been encountered by RedHat, Fedora and OpenSUSE communities and fixed in corresponding distros already. See the comments in the following bug entries for more info.
https:/
https:/
https:/
Changed in openjdk-6 (Ubuntu): | |
status: | New → In Progress |
Accepted openjdk-6 into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you in advance!