AttachListener bsd differences

Laurence Cable larry.cable at oracle.com
Tue Mar 5 19:39:29 UTC 2024


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...

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 serviceability-dev mailing list