PING: RFR: 8165736: Error message should be shown when JVMTI agent cannot be attached
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Nov 8 02:55:46 UTC 2017
On 11/6/17 04:31, Yasumasa Suenaga wrote:
> Hi Serguei,
>
> On 2017/11/06 20:06, serguei.spitsyn at oracle.com wrote:
>> Hi Yasumasa,
>>
>> The changes looks good.
>> Thank you for making them!
>
> Thanks!
>
>
>> On 11/3/17 05:10, Yasumasa Suenaga wrote:
>>> Hi Serguei,
>>>
>>> Thank you for your comment!
>>> I uploaded new webrev:
>>>
>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.01/
>>>
>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/jdk/com/sun/tools/attach/StartManagementAgent.java.udiff.html
>>>>
>>>>
>>>> - if (!ex.getMessage().contains("Invalid
>>>> com.sun.management.jmxremote.port number")) {
>>>> + if (!ex.getMessage().contains("For input string: \"apa\"")) {
>>>>
>>>>
>>>> What is the motivation for this change?
>>>> It seems, the original comparison is better.
>>>
>>> "ex" is AttachOperationFailedException.
>>> We can get the result as below when we run StartManagementAgent:
>>>
>>> -------------
>>> [runApplication] Error: Invalid com.sun.management.jmxremote.port
>>> number: apa
>>> [runApplication] jdk.internal.agent.AgentConfigurationError:
>>> java.lang.NumberFormatException: For input string: "apa"
>>> [runApplication] at
>>> jdk.management.agent/sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(ConnectorBootstrap.java:336)
>>> -------------
>>>
>>> I think we should check exception message in
>>> AttachOperationFailedException.
>>> In fact, jtreg fails at this point in my environment.
>>
>>
>> I'd expect a check for some exception name, not for details like: For
>> input string: "apa".
>
> Should we remove this comparison?
I don't understand. Why do remove?
Would it better to check for the exception name instead?
>>>> What tests did you run to make sure there are no regressions?
>>>
>>> I've tested the following testcases:
>>>
>>> - hotspot/jtreg/serviceability/attach
>>> - hotspot/jtreg/serviceability/dcmd/jvmti
>>> - jdk/com/sun/tools/attach
>>
>> There are more tests related to dynamic attach in closed,
>> nsk.aod.testlist and 30+ attach tests in nsk.jvmti.testlist.
>> I'm not sure, if they are included into any of the Mach5 testing
>> levels. Will need to check.
>> We have to make sure these tests are still passed.
>
> I cannot access JPRT and closed testcases because I'm not an Oracle
> employee.
> Can you run them with this change?
Ok.
I will sponsor this fix and run these tests before the push.
It seems, another update and one more review is needed.
Thanks,
Serguei
>
>
> Thanks,
>
> Yasumasa
>
>
>> Thanks,
>> Serguei
>>
>>> Thanks,
>>>
>>> Yasumasa
>>>
>>>
>>> On 2017/11/03 16:31, serguei.spitsyn at oracle.com wrote:
>>>> Hi Yasumasa,
>>>>
>>>> Some comments.
>>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/jdk/com/sun/tools/attach/StartManagementAgent.java.udiff.html
>>>>
>>>>
>>>> - if (!ex.getMessage().contains("Invalid
>>>> com.sun.management.jmxremote.port number")) {
>>>> + if (!ex.getMessage().contains("For input string: \"apa\"")) {
>>>>
>>>>
>>>> What is the motivation for this change?
>>>> It seems, the original comparison is better.
>>>>
>>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/hotspot/jtreg/serviceability/dcmd/jvmti/AttachFailed/AttachException.java.html
>>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/hotspot/jtreg/serviceability/dcmd/jvmti/AttachFailed/AttachIncorrectLibrary.java.html
>>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/hotspot/jtreg/serviceability/dcmd/jvmti/AttachFailed/AttachNoEntry.java.html
>>>>
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/test/hotspot/jtreg/serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java.html
>>>>
>>>>
>>>> 37 public void run(CommandExecutor executor) {
>>>> 38 try{
>>>>
>>>> A space is missed after 'try'.
>>>>
>>>>
>>>> It is odd that all test java classes define exactly the same
>>>> methods: sharedObjectName(), jmx() and cli().
>>>> Would it better to defin a common base class with these methods?
>>>>
>>>>
>>>> Otherwise, it looks good.
>>>> Thank you for taking care about it!
>>>>
>>>> What tests did you run to make sure there are no regressions?
>>>>
>>>> Thanks,
>>>> Serguei
>>>>
>>>>
>>>>
>>>> On 11/1/17 05:59, Yasumasa Suenaga wrote:
>>>>> PING: Could you review and sponsor it?
>>>>>
>>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Yasumasa
>>>>>
>>>>>
>>>>> On 2017/09/29 13:24, Yasumasa Suenaga wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> If we try to attach invalid JVMTI agent via JVMTI.agent_load
>>>>>> dcmd, we
>>>>>> will get "Command executed successfully". However, it implies
>>>>>> error in
>>>>>> JVMTIAgentLoadDCmd.
>>>>>> This message is from JCmd.java when jcmd does not receive any output
>>>>>> from target VM.
>>>>>>
>>>>>> I think HotSopt/jcmd should return useful error message to users to
>>>>>> understand the cause of failure.
>>>>>>
>>>>>> I uploaded webrev for this issue. Could you review it?
>>>>>>
>>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8165736/webrev.00/
>>>>>>
>>>>>>
>>>>>> This change is work fine on Fedora 26 x86_64 as following jtreg
>>>>>> testcases:
>>>>>>
>>>>>> - hotspot/jtreg/serviceability/attach
>>>>>> - hotspot/jtreg/serviceability/dcmd/jvmti
>>>>>> - jdk/com/sun/tools/attach
>>>>>>
>>>>>> I cannot access JPRT. So I need a sponsor.
>>>>>> (I cannot test it on other platforms.)
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Yasumasa
>>>>>>
>>>>
>>
More information about the serviceability-dev
mailing list