On Fri, 28 Mar 2025 17:17:01 GMT, Larry Cable <d...@openjdk.org> wrote:
>> on both Linux and MacOS libattach utilizes UNIX signal (QUIT) to cause a >> target JVM (attachee) to create the socket file used as transport for >> subsequent jcmds (and other attach based interactions) and to listen upon >> that for such. >> >> it should be noted that the default behavior for QUIT (if not blocked or >> caught) is to terminate the signalled process. >> >> during the early lifetime of a JVM, its signal handlers are not yet >> installed, and thus any signal such as QUIT will cause the >> default behavior to occur, in this case the JVM will be terminated. >> >> this is why some tests are failing with "not alive" >> >> the "fix" is similar in nature to that already implemented for linux >> (however using a different OS dependent mechanism to obtain the attachee >> JVM's signal masks: sysctl(2)). >> >> the method "checkCatchesAndSendQuitTo" will now obtain the "attachee" JVM >> signal masks and only kill(QUIT) if the >> current masks indicate that the JVM's signals are now being handled. >> >> the behavior in the success case is now identical to the previous >> implementation, however should the target JVM not >> become "ready" (signal handlers installed) prior to the attach "timeout" >> occurring the attach operation will throw an >> "AttachNotSupportedException" with a suitable error message. >> >> see also: https://bugs.openjdk.org/browse/JDK-8350766 > > Larry Cable has updated the pull request incrementally with one additional > commit since the last revision: > > Update src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c > > closing the stable door after the horse has bolted > > Co-authored-by: David Holmes <62092539+dholmes-...@users.noreply.github.com> Marked as reviewed by dholmes (Reviewer). src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c line 142: > 140: const bool caught = (kiproc.kp_proc.p_sigcatch & > sigmask(SIGQUIT)) != 0; > 141: > 142: // *only* send QUIT if the target is ready to catch and handle > the signal to avoid default "death" if not Re-requesting this comment be deleted as it effectively just repeats what the expanded comments above already say. Thanks ------------- PR Review: https://git.openjdk.org/jdk/pull/24085#pullrequestreview-2728168003 PR Review Comment: https://git.openjdk.org/jdk/pull/24085#discussion_r2020361432