RFR: SA: MacOS X: 8184042: several serviceability/sa tests timed out on MacOS X

Daniel D. Daugherty daniel.daugherty at oracle.com
Thu Sep 14 22:48:26 UTC 2017


On 8/18/17 4:00 AM, Jini George wrote:
> Hi all,
>
> Requesting reviews for: https://bugs.openjdk.java.net/browse/JDK-8184042
>
> Webrev: http://cr.openjdk.java.net/~jgeorge/8184042/webrev.00/

hotspot/src/jdk.hotspot.agent/macosx/native/libsaproc/MacosxDebuggerLocal.m
     L832:   result = mach_port_insert_right (mach_task_self(),
         Nit - extra blank before '('

     L860-863 - nit - indents don't match the other func calls.

     I read through all the changes and looked at logic flow, error
     returns, variable usage, etc. The problem is I'm not conversant
     in Mach exception programming so there could easily be things
     that I missed here.

     You really need to have a MacOS X person look at these changes
     also.

hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java
     No comments.

hotspot/src/jdk.hotspot.agent/macosx/native/libsaproc/mach_exc.h
hotspot/src/jdk.hotspot.agent/macosx/native/libsaproc/mach_excServer.c
hotspot/src/jdk.hotspot.agent/macosx/native/libsaproc/mach_excUser.c
     These files are generated by a tool and will be replaced
     by build changes. I didn't review them.

hotspot/test/serviceability/sa/TestAttachDetach.java
     L35: import java.util.ArrayList;
     L36: import java.util.List;
     L37: import java.util.Arrays;
     L38: import java.util.Optional;
     L40: import jdk.test.lib.Utils;
     L41: import jdk.test.lib.process.OutputAnalyzer;
     L42: import jdk.test.lib.process.ProcessTools;
         These imports do not seem to be needed.

     L45: import jdk.test.lib.JDKToolLauncher;
         Duplicate import.

     L98:                             "The String 'Attaching to process' 
appears " +
     L99:                              numberOfMatches + " number of 
times");
         Would be helpful to include the expected value also.

jdk/test/ProblemList.txt
     Thanks for remembering to update the ProblemList.txt file!

I don't have any comments other than nits. However, I don't
know mach exceptions so I can't really do a functional review.

We need someone that knows MacOS X mach exceptions to chime
in on this thread. I'm adding Gerard Z to this review thread
in the hopes that he can help...

Dan


>
> Problem gist: The deprecated ptrace() command, PT_ATTACH was changed 
> to PT_ATTACHEXC, which causes mach exceptions (and not UNIX signals) 
> to be delivered via mach messages.This caused SA to hang at waitpid() 
> waiting for a signal, which does not arrive.
>
> Solution in a nutshell: The solution is to make the required changes 
> to handle mach 'soft signal' exceptions in the form of mach messages 
> instead of signals, while attaching to and detaching from the target 
> process. The detailed steps are outlined in JBS.
>
> The changes appear huge due to the inclusion of pre-generated mach 
> exception handling files (mach_exc*). Since this is an integration 
> blocker, it would be great to get quick reviews on this.
>
> Thank you,
> Jini.
>
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20170914/f4eaf76c/attachment-0001.html>


More information about the serviceability-dev mailing list