[9] RFR (M): 8067344: Adjust java/lang/invoke/LFCaching/LFGarbageCollectedTest.java for recent changes in java.lang.invoke
Joseph D. Darcy
joe.darcy at oracle.com
Fri Jan 9 02:53:54 UTC 2015
Hello,
I don't have a comment on the changes to the test per se, but as someone
who keeps an eye on test failures that occur in regression tests in the
jdk repo of the JDK 9 dev forest, I'd like to see this test stop
failing, either by the test being fixed for, barring that, the testing
being @ignore-d in some way until the semantics of the test can be
corrected.
Thanks,
-Joe
On 1/7/2015 3:16 AM, Paul Sandoz wrote:
> Hi
>
> 70 TestMethods testCase = getTestMethod();
> 71 if (testCase == TestMethods.EXACT_INVOKER || testCase == TestMethods.INVOKER) {
> 72 // Invokers aren't collected.
> 73 return;
> 74 }
>
> Can you just filter those test cases out in the main method within EnumSet.complementOf?
>
> On Dec 23, 2014, at 1:40 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>
>> Spotted some more problems:
>> - need to skip identity operations (identity_* LambdaForms) in the test, since corresponding LambdaForms reside in a permanent cache;
>>
> 82 mtype = adapter.type();
> 83 if (mtype.parameterCount() == 0) {
> 84 // Ignore identity_* LambdaForms.
> 85 return;
> 86 }
>
> Under what conditions does this arise? i guess it might be non-determinisitic based on the randomly generated arity for the test case, so could filter more tests than absolutely required?
>
>
>> - need to keep original test data for diagnostic purposes, since getTestCaseData() produces new instance.
>>
> 78 adapter = getTestMethod().getTestCaseMH(data, TestMethods.Kind.ONE);
>
>
> Could replace "getTestMethod()" with "testCase".
>
> Paul.
>
>> Updated version:
>> http://cr.openjdk.java.net/~vlivanov/8067344/webrev.01/
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 12/22/14 11:53 PM, Vladimir Ivanov wrote:
>>> http://cr.openjdk.java.net/~vlivanov/8067344/webrev.00/
>>> https://bugs.openjdk.java.net/browse/JDK-8067344
>>>
>>> LFGarbageCollectedTest should be adjusted after JDK-8057020.
>>>
>>> There are a couple of problems with the test.
>>>
>>> (1) Existing logic to test that LambdaForm instance is collected isn't
>>> stable enough. Consequent System.GCs can hinder reference enqueueing.
>>> To speed up the test, I added -XX:SoftRefLRUPolicyMSPerMB=0 and limited
>>> the heap by -Xmx64m.
>>>
>>> (2) MethodType-based invoker caches are deliberately left strongly
>>> reachable. So, they should be skipped in the test.
>>>
>>> (3) Added additional diagnostic output to simplify failure analysis
>>> (test case details, method handle type and LambdaForm, heap dump
>>> (optional, -DHEAP_DUMP=true)).
>>>
>>> Testing: failing test.
>>>
>>> Thanks!
>>>
>>> Best regards,
>>> Vladimir Ivanov
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
More information about the mlvm-dev
mailing list