RFR(XS): 8193308: Disallow installing user signal handlers for SIGBUS on OSX

David Holmes david.holmes at oracle.com
Sat Feb 10 04:53:36 UTC 2018


Hi Mandy,

On 10/02/2018 9:14 AM, mandy chung wrote:
> (fixed formatting)
> 
> As documented in [1], SIGBUS is listed as the signals used by the 
> HotSpot implementation. It could be just that it was missed from day 1.

That document has not been well maintained, nor does it accurately 
reflect the actual implementation details.

> Have you checked the native signal chaining support via libjsig.so? It 
> should disallow to install a user native signal handler for SIGBUS.
> 
> I think JVM_RegisterSignal should disallow installing a user handler for 
> one of the implementation-specific signals for all platforms. That'll 
> simplify your fix.  I would think the compatibility risk should be low 
> as rare cases would want to intercept SIGBUS which is also clearly 
> documented in [1].

Each platform defines its own set of signals that are used by the VM on 
that platform. While I've never thought it made any sense to attempt to 
install user "handlers" for SIGBUS or SIGSEGV (not that we allow the 
latter) others have argued that unless we use it then we should allow 
it. Hence no "lowest common denominator" approach - though that 
certainly would be simpler.

In this case I believe it is simply another case where the OS X port 
copied the Linux code and it wasn't realized that OS X would generate 
SIGBUS when SIGSEGV is "expected" and so didn't list it as excluded.

Cheers,
David

> 
> Mandy
> [1] 
> https://docs.oracle.com/javase/9/troubleshoot/handle-signals-and-exceptions.htm#JSTGD356
> 
> 
> On 7/02/2018 1:19 AM, Robin Westberg wrote:
>  > Hi all,
>  >
>  > Please review the following change to disallow installing user
>  > signal handlers for SIGBUS on OSX. On OSX, SIGBUS is used
>  > internally by the VM (where most other platforms only use SIGSEGV),
>  > and installing a user handler can lead to a deadlock.
>  >
>  > Issue: https://bugs.openjdk.java.net/browse/JDK-8193308
>  > Webrev: http://cr.openjdk.java.net/~rwestberg/8193308/webrev.00/
>  >
>  > Best regards,
>  > Robin


More information about the hotspot-runtime-dev mailing list