You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/openj9_signals.md
+54-27Lines changed: 54 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@
23
23
24
24
# Signal handling
25
25
26
-
Signals used by the Eclipse OpenJ9™ VM include the following types:
26
+
Signals that are used by the Eclipse OpenJ9™ VM include the following types:
27
27
28
28
- Exceptions (Exc): Raised synchronously by the operating system whenever an unrecoverable condition occurs (not applicable on Windows™ systems).
29
29
- Errors (Err): Raised by the OpenJ9 VM when an unrecoverable condition occurs.
@@ -33,7 +33,7 @@ Signals used by the Eclipse OpenJ9™ VM include the following types:
33
33
For exceptions and errors, if the VM cannot handle the condition and recover, dumps are produced and a controlled shut down sequence takes place. Interrupts also cause the VM to enter a controlled shut down sequence, but without generating dumps. The shutdown sequence is equivalent to calling `System.exit()`, which results in the following steps:
34
34
35
35
1. The VM calls the equivalent application signal handler.
36
-
2. The VM calls any hooks installed by the application (unexpected shutdown hooks for exceptions or errors, shutdown or exit hooks for interrupts).
36
+
2. The VM calls any hooks that are installed by the application (unexpected shutdown hooks for exceptions or errors, shutdown or exit hooks for interrupts).
37
37
3. The VM does any final clean up.
38
38
39
39
Control signals are used for internal control purposes and do not cause the VM to end.
@@ -42,29 +42,55 @@ The VM takes control of any signals for Java™ threads. For non-Java thread
42
42
43
43
The signals relevant to each platform are detailed in the sections that follow.
44
44
45
-
When reading each table, a number supplied after the signal name is the standard numerical value for that signal.
45
+
When reading each table, a number that is supplied after the signal name is the standard numerical value for that signal.
46
46
47
47
Note that certain signals on VM threads cause OpenJ9 to shutdown. An application signal handler should not attempt to recover from these signals unless it no longer requires the VM.
48
48
49
+
On all platforms except Windows, when an asynchronous signal `SIGABRT`, `SIGQUIT`, or `SIGUSR2` occurs, the process ID (pid) and the name of the process that sent the signal is recorded and reported in a tracepoint. While `SIGABRT` creates a tracepoint, `SIGQUIT` and `SIGUSR2` might or might not create a tracepoint. For example, `SIGABRT` creates a `j9dmp.16` tracepoint with the following content that includes the pid and the process name:
50
+
51
+
```
52
+
j9dmp.16 - SIGABRT received from process id 608 name '/usr/bin/bash'
53
+
```
54
+
`SIGQUIT`, `SIGUSR2` might create a tracepoint `j9jcl.540` with similar content.
55
+
56
+
The sending pid information for these signals is also reported in the javacore. For example,
57
+
58
+
```
59
+
1TISIGPID Signalling process id 608 name "/usr/bin/bash"
60
+
```
61
+
The `SIGINT`, `SIGHUP`, and `SIGTERM` signals create a tracepoint that includes the pid but these signals do not create javacore files.
62
+
63
+
```
64
+
j9vm.807 - SIGTERM received from process id 601 name '/usr/bin/bash'
65
+
```
66
+
67
+
On the z/OS® platform, the pid is included in the tracepoint and reported in the javacore but the process name is not included. For example,
68
+
69
+
```
70
+
j9dmp.16 - SIGABRT received from process id 608
71
+
```
72
+
49
73
## Signals on Linux
50
74
51
75
| Signal | Type | Description | Option to disable signal |
@@ -108,28 +134,28 @@ Note that certain signals on VM threads cause OpenJ9 to shutdown. An application
108
134
109
135
The following mechanisms are used by OpenJ9 for signal handling:
110
136
111
-
-structured exception handling (32-bit VM only)
137
+
-Structured exception handling (32-bit VM only)
112
138
-`AddVectoredExceptionHandler()` API (64-bit JVM only)
113
139
-`SetConsoleCtrlHandler()` applicable
114
140
115
-
All mechanisms can be disabled by using the `-Xrs` option. However, only structured exception handling and the use of the `AddVectoredExceptionHandler()` API can be disabled by using the `-Xrs:sync` option. The option `-Xnosigchain`, which turns off signal handler chaining, is ignored on Windows systems.
141
+
All mechanisms can be disabled by using the `-Xrs` option. However, only structured exception handling and the use of the `AddVectoredExceptionHandler()` API can be disabled by using the `-Xrs:sync` option. The option `-Xnosigchain`, which turns off signal handler chaining, is ignored on Windows systems.
116
142
117
143
## Signals on z/OS
118
144
119
145
| Signal | Type | Description | Option to disable signal |
Copy file name to clipboardExpand all lines: docs/version0.57.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@ The following new features and notable changes since version 0.56.0 are included
27
27
28
28
-[New binaries and changes to supported environments](#binaries-and-supported-environments)
29
29
-[The `zlib` library bundled on all Linux platforms except Linux on IBM Z](#the-zlib-library-bundled-on-all-linux-platforms-except-linux-on-ibm-z)
30
+
-[The signaling process ID and process name are recorded and reported in tracepoints and javacore](#the-signaling-process-id-and-process-name-are-recorded-and-reported-in-tracepoints-and-javacore)
30
31
31
32
## Features and changes
32
33
@@ -42,6 +43,14 @@ The `zlib` compression library is now bundled on all Linux® platforms except
42
43
43
44
For more information on hardware-accelerated data compression and decompression, see [Hardware acceleration](introduction.md#hardware-acceleration).
44
45
46
+
### The signaling process ID and process name are recorded and reported in tracepoints and javacore
47
+
48
+
On all platforms except Windows™, when an asynchronous signal `SIGABRT`, `SIGQUIT`, or `SIGUSR2` occurs, the process ID (pid) and the name of the process that sent the signal is recorded and reported in a tracepoint and in the javacore.
49
+
50
+
The `SIGINT`, `SIGHUP`, and `SIGTERM` signals create a tracepoint that includes the pid but these signals do not create javacore files.
51
+
52
+
For more information, see [Signal handling](openj9_signals.md).
53
+
45
54
## Known problems and full release information
46
55
47
56
To see known problems and a complete list of changes between Eclipse OpenJ9 v0.56.0 and v0.57.0 releases, see the [Release notes](https://github.com/eclipse-openj9/openj9/blob/master/doc/release-notes/0.57/0.57.md).
0 commit comments