[8u] Regression after JDK-8237117: Better ForkJoinPool behavior
akozlov at azul.com
Fri Jul 17 17:46:44 UTC 2020
[another attempt without attachments]
backport of JDK-8237117  apparently introduces a regression.
It was found during runs of running lucene-solr 8.2.0 .
The problem reproduces on a simpler example (can be found in attachments to JDK-8249677) on openjdk8u262-b10, but doesn't reproduce on openjdk8u252-b09.
When I comment out line , the lucene-solr test and the provided reproducer passes.
The change original version is .
Newer JDKs have two package private constructors ForkJoinWorkerThread, that call base protected constructor and then initialize inherited ACC to the INNOCUOUS_ACC.
When users subclass ForkJoinWorkerThread, they are free to provide any ACC, which is by default is the current ACC.
Same was in 8u until backport of JDK-8237117, which changes default ACC to INNOCUOUS_ACC instead of the current one.
The backport in 8u is also inconsistent with one in jdk11u, which does not change ACC in the protected constructor.
The reproducer also passes on openjdk11.0.8 , which do have own backport of the original patch.
Please discuss. It doesn't look the 8u backport is correct.
I've opened JDK-8249677 to track the issue
More information about the jdk8u-dev