RFR: 8374862: assert(false) failed: Attempting to acquire lock MDOExtraData_lock/nosafepoint-1 out of order with lock tty_lock/tty -- possible deadlock (running with -XX:+Verbose -XX:+WizardMode -XX:+PrintDeoptimizationDetails) [v6]
Dean Long
dlong at openjdk.org
Fri Jan 16 04:01:20 UTC 2026
On Thu, 15 Jan 2026 09:17:55 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> I agree with the concern here. The buffering we need is local to this call site to keep the output coherent (collect everything and print once).
>> Whether we need to buffer/accumulate output for coherence is scenario-dependent, rather than a property that should permanently classify a stream type as “buffered” vs. “unbuffered”.
>> @dean-long what’s your view on this?
>
> No - sorry I forgot that you have to add override to all methods.
My understanding is that we need at least one stringStream, and the code is trying to avoid having two stacked stringStreams, which would mean extra memory footprint and copying. So I agree the proposed is_buffered() is really a proxy for "do I have a stringStream?" because bufferedStream does not guarantee coherent output by itself. What if we just live with the inefficiency of having two stringStreams for now?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29186#discussion_r2696784127
More information about the hotspot-compiler-dev
mailing list