RFR: 8303198: System and Runtime.exit() resilience to logging errors
David Holmes
dholmes at openjdk.org
Mon Feb 27 23:03:08 UTC 2023
On Mon, 27 Feb 2023 16:05:44 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/Shutdown.java line 189:
>>
>>> 187: } catch (Throwable throwable2) {
>>> 188: // Ignore
>>> 189: }
>>
>> The update means that several threads racing to exit may result in more than one message being logged. I don't think that's a big issue but just wanted to make sure that this was deliberate.
>
> Yes, its racy, and intentional, but from a diagnostic view, the developer should know that multiple callers were trying to exit. All but one will hang.
> Consolidating the code in a single method is cleaner and with fewer interactions between separate code blocks.
I can't tell if the thread identity will be included in the log the message?
I'm not so sure it is useful to allow competing exit calls to all log their intent. I would have kept the logging itself inside the locked region as per the original code.
-------------
PR: https://git.openjdk.org/jdk/pull/12770
More information about the core-libs-dev
mailing list