RFR(XS) 8242787: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java fails with sun.jvm.hotspot.types.WrongTypeException

David Holmes david.holmes at oracle.com
Fri Apr 17 04:17:02 UTC 2020


Hi Chris,

On 17/04/2020 3:18 am, Chris Plummer wrote:
> Hello,
> 
> Please review the following:
> 
> https://bugs.openjdk.java.net/browse/JDK-8242787
> http://cr.openjdk.java.net/~cjplummer/8242787/webrev.00/index.html
> 
> After fixing JDK-8230731 [1], this test still failed, this time with a 
> WrongTypeException. The issue is basically the same one as was just 
> fixed in JDK-8235220 [2]. With CDS on you sometimes get a 
> WrongTypeException instead of an AddressException, so in some places 
> code that allows an AddressException needs to also allow a 
> WrongTypeException.

Just an observation: the multiple catch blocks that are identical:

  261       catch (AddressException e) {
  262         // This is okay at the top of these regions
  263       }
  264       catch (UnknownOopException e) {
  265         // This is okay at the top of these regions
  266       }
  267       catch (WrongTypeException e) {
  268         // This is okay at the top of these regions
  269       }

can now be written more succinctly as:

  261       catch (AddressException | UnknownOopException | 
WrongTypeException e) {
  262         // These are okay at the top of these regions
  263       }

Cheers,
David
-----

> Note that fixing this issue then exposes JDK-8242789 [3], which I'll be 
> fixing next, so the problem list entry changed from JDK-8242787 to 
> JDK-8242789.
> 
> I also did a bit of cleaning up of some debugging code. During my 
> debugging session I set DEBUG = true to get some extra debugging output, 
> and suddenly a lot of tests were failing with a RuntimeException. This 
> is because of the debugging code I've now stripped out. It decided to 
> convert an acceptable failure type (UnknownOopException) into one that 
> the outer try/catch would not catch (RuntimeException). 
> UnknownOopException is not suppose to cause iterateLiveRegions() to abort.
> 
> https://bugs.openjdk.java.net/browse/JDK-8230731
> https://bugs.openjdk.java.net/browse/JDK-8235220
> https://bugs.openjdk.java.net/browse/JDK-8242789
> 
> thanks,
> 
> Chris


More information about the serviceability-dev mailing list