RFR (M): 8019489: Add regression test for JDK-8000232
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Jul 3 12:22:36 PDT 2013
Filipp,
Can it be done as whitebox test? May be you can make it less complex
using whitebox.
Also we start using new test naming:
https://wikis.oracle.com/display/HotSpotInternals/Naming+HotSpot+JTReg+Tests
so for your test it is test/compiler/logCompilation/DependencyChangeLog.java
Also the test needs code style clean up.
And I don't like synchronization you are using, too complex:
150 while(true) {
151 try {
152 return queue.take();
153 } catch (InterruptedException ie) {
154 continue;
155 }
156 }
Thanks,
Vladimir
On 7/3/13 5:50 AM, Filipp Zhinkin wrote:
> Hi,
>
> I would like to add regression test for 8000232: NPG: SIGSEGV in
> Dependencies::DepStream::check_klass_dependency on solaris-x64.
>
> Original issue occurs when dependency became invalid during compilation
> and HS tries to write dependency to compilation log.
> In order to reproduce it my test force creation of unique concrete method
> dependency and tries to invalidate it during compilation.
>
> At first test loads two classes: ContextClass and SubtypeClass, such that
> ContextClass has method "m" and SubtypeClass extends ContextClass without
> overriding that method. After that method "m" is repeatedly invoked on
> instance of ContextClass until amount of invocations will not be equal to
> CompilationThreshold-1. When method "m" invoked CompilationThreshold-1
> times test loads class WitnessClass that extends ContextClass and override
> method "m" in separate thread and continue invocations of "m" on instance
> of ContextClass. WitnessClass will make unique concrete method dependency
> invalid and if issue described in 8000232exist JVM will crash.
>
> webrev: http://cr.openjdk.java.net/~vlivanov/filipp/8019489/
>
> I've run JPRT to check that there are no issues with test and it passed.
>
> Thanks,
> Filipp.
More information about the hotspot-compiler-dev
mailing list