JDK-8225178 : [Solaris] os::signal() should call sigaction() with SA_SIGINFO
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11,12,13
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris
  • Submitted: 2019-06-03
  • Updated: 2019-08-15
  • Resolved: 2019-06-04
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 13 JDK 14
11.0.5Fixed 13 b24Fixed 14Fixed
Related Reports
Relates :  
Description
os::signal(), on Solaris, does not specify SA_SIGINFO. This leads to signal handlers installed with this function - among others, the secondary signal handler installed during error reporting - to be called without siginfo_t pointer.

All other platforms specify SA_SIGINFO in os::signal(), and so does the Solaris-specific code which installs the "big" primary signal handler. 

At SAP we run with this fix (specifying SA_SIGINFO on Solaris too) since years without problems.
Comments
Fix Request: Important to fix because: this bug may interfere with error reporting on Solaris, e.g. may cause empty crash reports. Nature of fix: set SA_SIGACTION on the call which establishes the secondary signal handler (which is active during error reporting). Low risk: Fix is very minimal. It only mimics what other platforms do since the start (passing SA_SIGACTION). Fix has been active in SAPs internal JVM since 2012. Testing done: SAP internal nightlies (JCK, Jtreg tests, gtests, ...)
13-06-2019

Note that this may one of the reason for incomplete/missing hs-err files on stressed Solaris machines, when the load is heavy and error reporting steps are getting cancelled, see JDK-8188872 .
03-06-2019