RFR: 8073688: Infinite loop reading types during jmap attach.

Kevin Walls kevin.walls at oracle.com
Tue Mar 3 13:15:29 UTC 2015


Hi,

This is a review request for a way to make the SA tools protect 
themselves from infinite loops during initialisation.

Attaching jmap (for example) to a JVM can fail, infinitely writing an 
error - and filling a disk if being logged to a file.  This reproduces 
on a Solaris package based install, but not with other distribution 
bundles.  In those packages, there's a link JDK/jre/lib/sparc/libjvm -> 
client/libjvm.so.  If a server/libjvm.so is loaded and running, we see 
libverify.so pull in client/libjvm.so, as it finds the symlink in its 
$ORIGIN, in preference to finding the already loaded libjvm.so.

Symbol lookup in the SA is fooled by having multiple libjvm.so loaded.  
There are various things wrong with that.  Protection against zero 
strides through the type arrays and a maximum count for duplicated types 
will protect us from a few possible problems.

I'll also work a bug for the "install" repo where we create that 
symlink, but the tools need to protect themselves from this kind of problem.

Testing was manual.

bug
https://bugs.openjdk.java.net/browse/JDK-8073688

webrev
http://cr.openjdk.java.net/~kevinw/8073688/webrev.00/

Thanks
Kevin


More information about the serviceability-dev mailing list