RFR: 8252657: JVMTI agent is not unloaded when Agent_OnAttach is failed
David Holmes
david.holmes at oracle.com
Tue Dec 1 05:21:27 UTC 2020
On 1/12/2020 3:19 pm, David Holmes wrote:
> On 1/12/2020 2:46 pm, Yasumasa Suenaga wrote:
>> Hi Chris, David,
>>
>> Currently Agent_OnUnload() is not called when Agent_OnLoad() is failed
>> - JVM will abort.
>> Should we re-think this behavior?
>
> We should we rethink that? It is probably one of the clearest parts of
> the spec. If Agent_Onload fails that is considered a fatal error - end
> of story.
I meant, of course, "Why should we rethink that?".
David
> The issue is with Agent_onAttach and how its failure should, or should
> not, impact Agent_OnUnload.
>
> David
> -----
>
>> https://github.com/YaSuenag/jvmti-examples/tree/master/helloworld
>>
>> ```
>> $ java -agentpath:/path/to/libhelloworld.so=error --version
>> Hello World from Agent_OnLoad()
>> options = error
>> Error occurred during initialization of VM
>> agent library failed to init: /path/to/libhelloworld.so
>> ```
>>
>>
>> Thanks,
>>
>> Yasumasa
>>
>>
>> On 2020/12/01 11:44, David Holmes wrote:
>>> On 1/12/2020 11:45 am, Chris Plummer wrote:
>>>> On Fri, 2 Oct 2020 07:27:43 GMT, Yasumasa Suenaga
>>>> <ysuenaga at openjdk.org> wrote:
>>>>
>>>>>> * Q3: What has to be done for statically linked agent?
>>>>>
>>>>> JVMTI spec says "unless it is statically linked into the
>>>>> executable", so I think we can ignore about Agent_OnUnload_L() in
>>>>> this PR.
>>>>
>>>> I don't think that makes sense. If you call it for dynamically
>>>> linked then you need to call it for statically linked also.
>>>
>>> Agreed. Even though you can't physically unload the statically linked
>>> library, if it is logically unloaded by some mechanism, then
>>> Agent_OnUnload_L is supposed to be called.
>>>
>>> David
>>> -----
>>>
>>>> -------------
>>>>
>>>> PR: https://git.openjdk.java.net/jdk/pull/19
>>>>
More information about the hotspot-dev
mailing list