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