RFR(S) 8235220: ClhsdbScanOops.java fails with sun.jvm.hotspot.types.WrongTypeException

Chris Plummer chris.plummer at oracle.com
Mon Apr 13 18:45:03 UTC 2020


Ping! Can I get one more review please.

thanks,

Chris

On 4/9/20 10:21 PM, Ioi Lam wrote:
> Hi Chris,
>
> Thanks for fixing this. It looks good to me.
>
> - Ioi
>
> On 4/9/20 9:44 PM, Chris Plummer wrote:
>> Hello,
>>
>> Please review the following:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8235220
>> http://cr.openjdk.java.net/~cjplummer/8235220/webrev.00
>>
>> First off, thanks to Ioi for tracking this one down and proposing the 
>> fix.
>>
>> The test is executing the clhsdb "scanoops" command, which scans the 
>> specified heap address range looking for objects of the specified 
>> type (or all objects if no type is specified). The test determines 
>> the address range by first using clhsdb "universe" to get the start 
>> and end of the eden space. scanoops then iterates over this entire 
>> range, calling RobustOopDeterminator.oopLooksValid() on each oop as 
>> it iterates over the range. The problem is eventually you'll end up 
>> past the initialized part of the heap. That causes 
>> VirtualBaseConstructor.findDynamicTypeForAddress() to return null, 
>> resulting in throwing a WrongTypeException. 
>> RobustOopDeterminator.oopLooksValid() should catch this exception and 
>> return false when it happens.
>>
>> The CR mentions a few different failure modes. This only fixes the 
>> WrongTypeException failure. The NullPointerException is only on OSX 
>> and I believe is the same as JDK-8241158 [1], which happens when 
>> dumping the heap, so it seems probable that it is also turning up 
>> when scanning part of the heap. I think this bug was preventing us 
>> from ever seeing the WrongTypeException on OSX. Then there also 
>> JDK-8230731 [2] on Windows, which seems to prevent ever seeing the 
>> WrongTypeException on Windows.
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8241158
>> [2] https://bugs.openjdk.java.net/browse/JDK-8230731
>>
>> thanks,
>>
>> Chris
>



More information about the serviceability-dev mailing list