Re: [PATCH] abort.3: Note that the glibc implementation is not async-signal-safe

Tomáš Golembiovský
2023-08-25T12:34:39Z

On Thu, Aug 24, 2023 at 11:07:00PM +0100, Gabriel Ravier wrote:
> On 8/22/23 17:26, Tomáš Golembiovský via Libc-alpha wrote:
> > Hi,
> >
> > gentle reminder that this has not received any attention yet.
> I assume this is because there are currently efforts to make glibc's
> implementation async-signal-safe - which would make this proposed note quite
> quickly inaccurate

I suppose you're referring to this:

https://inbox.sourceware.org/libc-alpha/20230803173436.4146900-1-adhemerval.zanella@linaro.org/

I was not aware of that. Thanks for bringing that to my attention.

> (though the fact it has been async-signal-unsafe until
> now still seems notable enough to be mentioned here).

Yes, even when this is fixed having a BUGS section with something like
"In glibc X.Y.Z and earlier the function was not AS-safe.", might be a
good idea.

Tomas

> >
> > Thanks,
> >
> > Tomas
> >
> > On Wed, Jul 26, 2023 at 01:55:27PM +0200, Tomáš Golembiovský wrote:
> > > See https://sourceware.org/bugzilla/show_bug.cgi?id=26275
> > >
> > > Cc: Carlos O'Donell <carlos@redhat.com>
> > > Cc: Glibc <libc-alpha@sourceware.org>
> > > Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
> > > ---
> > > man3/abort.3 | 6 ++++++
> > > man7/signal-safety.7 | 5 +++++
> > > 2 files changed, 11 insertions(+)
> > >
> > > diff --git a/man3/abort.3 b/man3/abort.3
> > > index 0b57e10ed..827d5c9db 100644
> > > --- a/man3/abort.3
> > > +++ b/man3/abort.3
> > > @@ -85,6 +85,12 @@ terminates the process without flushing streams.
> > > POSIX.1 permits either possible behavior, saying that
> > > .BR abort ()
> > > "may include an attempt to effect fclose() on all open streams".
> > > +.SH BUGS
> > > +The glibc implementation of
> > > +.BR abort ()
> > > +is not async-signal-safe,
> > > +.\" FIXME . https://sourceware.org/bugzilla/show_bug.cgi?id=26275
> > > +in violation of the requirements of POSIX.1.
> > > .SH SEE ALSO
> > > .BR gdb (1),
> > > .BR sigaction (2),
> > > diff --git a/man7/signal-safety.7 b/man7/signal-safety.7
> > > index 3d6ddc7eb..431a22f89 100644
> > > --- a/man7/signal-safety.7
> > > +++ b/man7/signal-safety.7
> > > @@ -335,6 +335,11 @@ The glibc implementation of
> > > is not async-signal-safe because it uses
> > > .BR pthread_mutex_lock (3)
> > > internally.
> > > +.IP \[bu]
> > > +.\" FIXME . https://sourceware.org/bugzilla/show_bug.cgi?id=26275
> > > +The glibc implementation of
> > > +.BR abort (3)
> > > +is not async-signal-safe.
> > > .SH SEE ALSO
> > > .BR sigaction (2),
> > > .BR signal (7),
> > > --
> > > 2.41.0
> > >
>