RFR(XS): 8167001: [TESTBUG] java/lang/instrument/DaemonThread/TestDaemonThread.java fails when run by jprt
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Tue Oct 4 22:52:25 UTC 2016
Ok, thanks.
Serguei
On 10/4/16 15:49, Chris Plummer wrote:
> I think in general that's the reason for using othervm. For this
> particular test it's probably not needed since all the real work is
> done by the creating subprocesses.
>
> Chris
>
> On 10/4/16 3:18 PM, serguei.spitsyn at oracle.com wrote:
>> I don't know the exact answer but I thought one motivation was
>> to avoid test/agent interference and so make it more stable.
>>
>> Thanks,
>> Serguei
>>
>>
>> On 10/4/16 14:59, Chris Plummer wrote:
>>> Do you know why "othervm" is needed for the other j.l.i tests?
>>>
>>> Chris
>>>
>>> On 10/4/16 2:50 PM, serguei.spitsyn at oracle.com wrote:
>>>> Hi Chris,
>>>>
>>>> The createJavaProcessBuilder() approach is Ok with me.
>>>> Just curios why the "othervm" is not used for this case.
>>>> My theory is that it is because this test is located in sub-folder,
>>>> so that it was forgotten in some update. :)
>>>>
>>>> Thanks,
>>>> Serguei
>>>>
>>>>
>>>> On 10/4/16 14:33, Chris Plummer wrote:
>>>>> Hi Serguei,
>>>>>
>>>>> Yes, adding othervm also fixes the problem. What also works is
>>>>> adding the following VM arguments when calling
>>>>> createJavaProcessBuilder().:
>>>>>
>>>>> "-cp", System.getProperty("test.class.path")
>>>>>
>>>>> or
>>>>>
>>>>> "-cp", System.getProperty("java.class.path")
>>>>>
>>>>> I've seen the above used, othervm used, and relying on
>>>>> ProcessTools.createJavaProcessBuilder() to add the classpath,
>>>>> either implicitly as is done by default in hotspot/test, or
>>>>> explicitly by passing true as the first arg as is done in jdk/test.
>>>>>
>>>>> My preferences is the createJavaProcessBuilder() approach. I worry
>>>>> that othervm is relying on a side affect of its use, and is not on
>>>>> a direct solution to the problem. I still haven't gotten an
>>>>> explanation as to why othervm causes CLASSPATH to be exported, and
>>>>> agentvm causes -classpath to be used instead. Using the
>>>>> createJavaProcessBuilder() approach will continue to work even if
>>>>> othervm stopped exporting CLASSPATH.
>>>>>
>>>>> thanks,
>>>>>
>>>>> Chris
>>>>>
>>>>> On 10/4/16 2:18 PM, serguei.spitsyn at oracle.com wrote:
>>>>>> Hi Chris,
>>>>>>
>>>>>> It looks good to me.
>>>>>> But I have a question.
>>>>>> Would it also work if we add "othervm" to the test
>>>>>> TestDaemonThread.java?
>>>>>> It seems other j.l.i tests are run in this mode.
>>>>>>
>>>>>> Thanks,
>>>>>> Serguei
>>>>>>
>>>>>>
>>>>>> On 10/4/16 10:43, Chris Plummer wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> Please review the following:
>>>>>>>
>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8167001
>>>>>>> http://cr.openjdk.java.net/~cjplummer/8167001/webrev.00/webrev.jdk/
>>>>>>>
>>>>>>> This fixes an issue with the classpath not being passed to the
>>>>>>> subprocess, resulting in the main class for the subprocess not
>>>>>>> being found. It only turns up when running the test with
>>>>>>> "agentvm", which is the default when running the test via
>>>>>>> test/Makefile (which is what jprt uses). "othervm" seems to be
>>>>>>> the default when running jtreg directly from the command line,
>>>>>>> so it doesn't see this problem.
>>>>>>>
>>>>>>> Although there are still ongoing discussion of jtreg classpath
>>>>>>> definition differences between "agentvm" mode and "othervm"
>>>>>>> mode, existing tests fix this issue by explicitly passing the
>>>>>>> classpath to the subprocess. This is usually done by passing
>>>>>>> "true" as the first argument to
>>>>>>> ProcessTools.createJavaProcessBuilder(), so I'd like to go with
>>>>>>> this fix for now. This is actually the default behavior for
>>>>>>> hotspot/test. For jdk/test the default is "false" so you need to
>>>>>>> explicitly pass "true".
>>>>>>>
>>>>>>> Tested by running with jprt under conditions where the test was
>>>>>>> previously failing. Also tested by running the test directory
>>>>>>> locally using jdk/Makefile (which previously was failing).
>>>>>>>
>>>>>>> thanks,
>>>>>>>
>>>>>>> Chris
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the jtreg-dev
mailing list