RFR: JDK-8325530: Vague error message when com.sun.tools.attach.VirtualMachine fails to load agent library

Alex Menkov amenkov at openjdk.org
Wed Feb 21 21:34:19 UTC 2024


On Wed, 21 Feb 2024 21:16:46 GMT, Alex Menkov <amenkov at openjdk.org> 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
>
> src/hotspot/share/prims/jvmtiAgentList.cpp line 201:
> 
>> 199: 
>> 200: // Invokes Agent_OnAttach for agents loaded dynamically during runtime.
>> 201: jint JvmtiAgentList::load_agent(const char* agent_name, const char* absParam,
> 
> The method never returns error, dropped value return type

only 1 caller (load_agent() from attachListener) extract `absParam` from attach command, other pass constants ("true" or "false")
Moved conversion from string to bool there.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17954#discussion_r1498327164


More information about the serviceability-dev mailing list