RFR(S): URG! JDK-8049226 com/sun/jdi/OptionTest.java test times out again
Dmitry Samersoff
dmitry.samersoff at oracle.com
Mon Aug 25 11:33:38 UTC 2014
Staffan,
On 2014-08-25 15:26, Staffan Larsen wrote:
> Dmitry,
>
> One problem with this fix is that debugInit_exit() is used from many
> places in the JDWP code. For some of these I think it still does make
> sense to receive a core dump for analysis. I agree that when parsing
> options, we do not need a core dump.
jdwp has explicit option to request a coredump at debugInit_exit().
Is it enough or I should create a more sophisticated fix ?
Actually, I don't think that coredump on every call to jni_FatalError()
(see jni.cpp:726) is necessary but this hotspot code is here for 6 years
and changing it probably out of scope of this fix.
-Dmitry
>
> /Staffan
>
>
> On 20 aug 2014, at 17:55, Dmitry Samersoff
> <dmitry.samersoff at oracle.com> wrote:
>
>> Serguei,
>>
>> After some additional testing I changed the fix a bit. Please take
>> a look at new version.
>>
>> http://cr.openjdk.java.net/~dsamersoff/JDK-8049226/webrev.02/
>>
>> New version reports JVMTI error to stderr.
>>
>> Also jniFatalError is not referenced any more so I remove it.
>>
>> -Dmitry
>>
>>
>>
>> On 2014-08-20 12:08, serguei.spitsyn at oracle.com wrote:
>>> Ok.
>>>
>>> Thank you for the explanation! Serguei
>>>
>>> On 8/20/14 1:01 AM, Dmitry Samersoff wrote:
>>>> Serguei,
>>>>
>>>> 1. Historically JDI test-suite had no tests for failed
>>>> transport initialization behavior and invalid parameters
>>>> handling.
>>>>
>>>> 2. As a part of JDWP hardening work I added couple of such
>>>> tests to OptionTest.java - these tests pass invalid parameters
>>>> to dt_socket transport to make sure that transport doesn't
>>>> crash (one such crash was discovered and fixed) but just return
>>>> non-zero exit code to upper level.
>>>>
>>>> 3. After fix for JDK-6694099 any non-zero exit code from
>>>> transport cause VM to coredump. Dumping multiple cores on busy
>>>> machine takes a time so harness kills the test by timeout.
>>>>
>>>> We can just increase timeout for this test but I don't think
>>>> it's a good idea to dump core when invalid parameters passed to
>>>> transport.
>>>>
>>>> So there is the fix.
>>>>
>>>> 4. After the fix tests for negative parameters will return
>>>> non-zero exit code as expected but will not dump the core.
>>>>
>>>> -Dmitry
>>>>
>>>> On 2014-08-20 00:54, serguei.spitsyn at oracle.com wrote:
>>>>> Hi Dmitry,
>>>>>
>>>>> The fix seems to be Ok. Just want to make it clear... This
>>>>> fix just changes the bug pattern. It a case of incorrect
>>>>> transport parameters the test is still going to fail but
>>>>> without crash, right?
>>>>>
>>>>> Thanks, Serguei
>>>>>
>>>>> On 8/19/14 12:09 PM, Dmitry Samersoff wrote:
>>>>>> Hi Everybody,
>>>>>>
>>>>>> Please review the fix:
>>>>>>
>>>>>> http://cr.openjdk.java.net/~dsamersoff/JDK-8049226/webrev.01/
>>>>>>
>>>>>>
>>>>>>
JDWP call jniFatalError if transport can't be initialized (e.g. wrong
>>>>>> parameters) and jniFatalError call os::abort(). Therefor
>>>>>> all transport initialization errors cause vm to coredump.
>>>>>>
>>>>>> I see no reason for debugInit_exit to call jniFatalError so
>>>>>> remove this code.
>>>>>>
>>>>>> -Dmitry
>>>>>>
>>>>
>>>
>>
>>
>> -- Dmitry Samersoff Oracle Java development team, Saint Petersburg,
>> Russia * I would love to change the world, but they won't give me
>> the sources.
>
--
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.
More information about the serviceability-dev
mailing list