This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] abort: Only flush file-based stdio streams before termination
- From: Florian Weimer <fweimer at redhat dot com>
- To: Carlos O'Donell <carlos at redhat dot com>, libc-alpha at sourceware dot org
- Date: Thu, 17 Aug 2017 15:59:20 +0200
- Subject: Re: [PATCH] abort: Only flush file-based stdio streams before termination
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=fweimer at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D8D0492E17
- References: <20170817133507.CEA5341DB79B0@oldenburg.str.redhat.com> <5453e6d9-11dd-5dce-f38f-4c8793864ddc@redhat.com>
On 08/17/2017 03:45 PM, Carlos O'Donell wrote:
> On 08/17/2017 09:35 AM, Florian Weimer wrote:
>> Historically, glibc flushes streams on abort, which is not
>> required by POSIX. This can trigger additional work
>> (including callbacks through function pointers) in processes
>> which are known to be in a bad state. After this change,
>> only streams which are backed by the standard descriptor-based
>> implementation are flushed.
>
> Does this mean open_memstream streams to NVM won't be flushed by
> default?
You can't put open_memstream streams on NVM because their backing
storage is tied to the malloc allocator.
> As a user I might be convinced that my own custom streams need to
> flushed by hand in an abort handler, but I might expect open_memstream
> streams to be flushed.
Flushing open_memstream streams prior to process termination is not
observable, except via an abort handler. I don't think we need to flush
them.
Thanks,
Florian