RFR: 8252657: JVMTI agent is not unloaded when Agent_OnAttach is failed
David Holmes
david.holmes at oracle.com
Tue Dec 1 05:19:04 UTC 2020
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.
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