On Wed, 21 Feb 2024 21:42:08 GMT, Alex Menkov <[email protected]> wrote:
>> VirtualMachine.loadAgentPath/loadAgentLibrary can fail with
>> AgentLoadException in 2 cases:
>> - attach listener returns error; in the case the exception is thrown from
>> HotSpotVirtualMachine.processCompletionStatus (called from
>> HotSpotVirtualMachine.execute);
>> - attach listener returns success, but reply does not contain Agent_onAttach
>> return code ("return code: %d" message).
>>
>> before jdk21 if attach listener fails to load required library, it returned
>> error (case 1)
>> from jdk21 attach listener always returns success (case 2)
>> Both cases are ok, but for 2nd case HotSpotVirtualMachine.loadAgentLibrary
>> read only single line of the response message, so exception message didn't
>> contain error details.
>>
>> The fix updates HotSpotVirtualMachine.loadAgentLibrary to read the whole
>> response message.
>> Walking through the code, fixed some other minor things in attach listener
>> and attach API implementation (commented in the code)
>>
>> Testing:
>> - test/jdk/com/sun/tools;
>> - tier1,tier2,tier5-svc
>
> Alex Menkov has updated the pull request incrementally with one additional
> commit since the last revision:
>
> uncaught error
src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java line
113:
> 111: }
> 112: } else {
> 113: String msg = "Failed to load agent library";
Nit: The line 113 can be moved above the line 99, so the `msg` could be also
used at line 122 instead of a literal use of the string.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17954#discussion_r1499234830