RFR: 8271003: hs_err improvement: handle CLASSPATH env setting longer than O_BUFLEN
thomas.stuefe at gmail.com
Tue Aug 3 05:38:45 UTC 2021
On Tue, Aug 3, 2021 at 7:32 AM David Holmes <david.holmes at oracle.com> wrote:
> On 3/08/2021 2:38 pm, Thomas Stüfe wrote:
> > Hi David,
> > >
> > > The problem is that the print_cr() functions are supposed to
> > write the newline *with the same `write(2)` call*. That is not
> > documented in do_vsnprintf(), but maybe we should do that since its
> > an easy to miss a detail.
> > >
> > > Writing with one single `write(2)` call guarantees some atomicity
> > when writing concurrently from several threads. If you write the
> > newline separately, you risk line tear - the newline appearing away
> > from its line.
> > Do we really rely on the write(2) call for atomicity? The
> > uses a lock and we could pass `add_cr` through to
> > so that the cr is added under the lock.
> > That would only work for the defaultStream, no? What about other streams?
> Do the other streams have atomicity in the first place? It's not an
> issue for stringStream as they aren't shared.
We have fdStream and fileStream. Both are calling write(2) resp. fwrite(3)
directly. Yes, separate print invocations are not guaranteed to be atomic,
but today at least individual print_cr() calls are.
More information about the hotspot-runtime-dev