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