Hello,
Please review the following fix for some SA tests
that are failing on Mac OS X 10.14.5 and later:
https://bugs.openjdk.java.net/browse/JDK-8238196
http://cr.openjdk.java.net/~cjplummer/8236913/webrev.00
The issue is that SA can't attach to a signed binary
starting with 10.14.5. There is no workaround for
this, so these tests are being disabled when it is
detected that the binary is signed and we are
running on 10.14 or later (I chose all 10.14
releases to simplify the check).
Some background may help explain the fix. In order
for SA to attach to a live process (not a core file)
on OSX, either the attaching process (ie. the test)
has to be run as root, or sudo needs to be
supported. However, the only tests that make the
sudo check are the 20 or so that use ClhsdbLauncher.
The rest all rely on "@requires
vm.hasSAandCanAttach" to filter out tests that use
SA attach. vm.hasSAandCanAttach only checks if the
test is being run as root. Thus all our
non-ClhsdbLauncher tests that SA attach to a live
process are currently not run unless they are run as
root. 8238268 [1] has been filed to address this,
making it so all the tests will attempt to use sudo
if not run as root.
Because of the difference in how ClhsdbLauncher
tests and "@requires vm.hasSAandCanAttach" tests
check to see if they are runnable, this fix needs to
address both types of checks. The common code for
both these cases is Platform.shouldSAAttach(), which
on OSX basically equates to check to see if we are
running as root. I changed it to also return false
if running on signed binary with 10.14 or later.
However, this confused the ClhsdbLauncher use of
Platform.shouldSAAttach() somewhat, since it assumed
a false result only happens because you are not
running as root (in which case it would then check
if sudo will work). So ClhsdbLauncher now has double
check that the false result was not because of
running a signed binary. If it is signed, it won't
do the sudo check. This will get cleaned up with
8238268 [1], which will move the sudo check into
Platform.shouldSAAttach().
thanks,
Chris
[1]
https://bugs.openjdk.java.net/browse/JDK-8238268