AttachListener bsd differences
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Thu Mar 7 13:53:50 UTC 2024
Sonia, Thank you for fixing this! It looks like duplicated code where
one version is wrong (or unnecessarily different).
On 3/5/24 2:39 PM, Laurence Cable wrote:
> looking at the "attacher" code in jdk.attach it certainly does not
> appear to attempt to "attach" via cwd, so I would say that the
> "attachee" code to check this is redundant, unless there is a
> backwards compatibility/interoperability issue that requires this where
> an early JDK "attacher" might attempt to rendezvous via cwd...
So the advice is to remove the check for $cwd? That seems ok but needs
testing.
Thanks,
Coleen
>
> Rgds
>
> - Larry
>
> p.s also "littering" arbitrary directories with .attach files seems
> "rude" :)
>
>
> On 3/4/24 9:38 PM, David Holmes wrote:
>> Hi Sonia,
>>
>> Adding serviceability and Alan Bateman ...
>>
>> On 5/03/2024 2:35 am, Sonia Zaldana Calles wrote:
>>> Hi folks,
>>>
>>>
>>> I’m working on JDK-8324683 [0].
>>>
>>>
>>> I’m hoping to unify the code for attachListener_<os>.cpp for posix
>>> platforms.
>>>
>>>
>>> While reviewing linux against bsd, I noted a difference in
>>> AttachListener::is_init_trigger().
>>>
>>>
>>> Both linux and AIX implementations, first try “<current
>>> dir>/.attach<pid>” and failing that, attempt “/tmp/.attach<pid>”.
>>> [1][2]
>>>
>>>
>>> On the other hand, bsd doesn’t attempt “/tmp/.attach<pid>” [3].
>>
>> I think you meant it doesn't attempt <current dir>/.attach<pid>
>>
>>>
>>> I have been trying to do a bit of digging to see if this disparity
>>> was intentional but I have found that this change precedes the MacOS
>>> port, so I’m having trouble coming to a conclusion.
>>
>> Looking at the history here:
>>
>> https://hg.openjdk.org/macosx-port/macosx-port/hotspot/log/407770c31c18/src/os/bsd/vm/attachListener_bsd.cpp
>>
>>
>> The very first load of the file did check the current directory too:
>>
>> https://hg.openjdk.org/macosx-port/macosx-port/hotspot/rev/be94a5de4d32
>>
>> but that was removed in the very next upload (though they never fixed
>> the comment preceding the code):
>>
>> https://hg.openjdk.org/macosx-port/macosx-port/hotspot/rev/9f1dd0b1d28c
>>
>> To know why you would have to ask the person that did it I'm afraid.
>>
>>> I was wondering if perhaps anyone on this list could shed some light
>>> on this matter and whether it would be acceptable to do the
>>> alternate path on BSD too.
>>
>> The init trigger mechanism was added by Alan under:
>>
>> https://bugs.openjdk.org/browse/JDK-6272307
>>
>> I get the sense that having the well-known file in the working
>> directory was actually a bit of an anachronism. That may be why the
>> macOS folk didn't bother with it (speculation on my part). AIX simply
>> copied the Linux code.
>>
>> Whether it would be okay/harmless/safe to have macOS/BSD also check
>> there I really can't say. I'm not sure if we have code that would
>> ever write the file to the target cwd these days? Hopefully Alan or
>> current serviceability folk can say more.
>>
>> Cheers,
>> David
>> -----
>>
>>>
>>> Thanks for your help,
>>>
>>> Sonia
>>>
>>>
>>>
>>> [0] https://bugs.openjdk.org/browse/JDK-8324683
>>> <https://bugs.openjdk.org/browse/JDK-8324683>
>>>
>>> [1]
>>> https://github.com/openjdk/jdk/blob/master/src/hotspot/os/linux/attachListener_linux.cpp#L521C3-L529C4
>>> <https://github.com/openjdk/jdk/blob/master/src/hotspot/os/linux/attachListener_linux.cpp#L521C3-L529C4>
>>>
>>>
>>> [2]
>>> https://github.com/openjdk/jdk/blob/master/src/hotspot/os/aix/attachListener_aix.cpp#L551C2-L559C4
>>> <https://github.com/openjdk/jdk/blob/master/src/hotspot/os/aix/attachListener_aix.cpp#L551C2-L559C4>
>>>
>>>
>>> [3]
>>> https://github.com/openjdk/jdk/blob/master/src/hotspot/os/bsd/attachListener_bsd.cpp#L520C2-L522C4
>>> <https://github.com/openjdk/jdk/blob/master/src/hotspot/os/bsd/attachListener_bsd.cpp#L520C2-L522C4>
>>>
>>>
>>> --
>>> Sonia Zaldaña Calles
>>> Software Engineer, OpenJDK
>>> Red Hat
>
More information about the hotspot-runtime-dev
mailing list