public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] nptl: Fix issue unwinding through sem_wait futex
@ 2020-11-11 21:46 Stafford Horne
  2020-11-12 11:38 ` Adhemerval Zanella
  0 siblings, 1 reply; 3+ messages in thread
From: Stafford Horne @ 2020-11-11 21:46 UTC (permalink / raw)
  To: libc-alpha

Calls to sem_wait may use the __futex_abstimed_wait_cancelable64
function that is built in futex-internal.  If we get a C++ exception,
i.e. thread cancel when we are waiting on a semaphore thread unwinding
fails.  Example test: nptl/tst-cancel24

Adding -fexceptions flag when building futex-internal fixes this.
---
 nptl/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nptl/Makefile b/nptl/Makefile
index b30d263ca4..a1ffb6258a 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -220,6 +220,7 @@ CFLAGS-pthread_cond_wait.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sem_wait.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-futex-internal.c += -fexceptions -fasynchronous-unwind-tables
 
 # These are the function wrappers we have to duplicate here.
 CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
-- 
2.26.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] nptl: Fix issue unwinding through sem_wait futex
  2020-11-11 21:46 [PATCH] nptl: Fix issue unwinding through sem_wait futex Stafford Horne
@ 2020-11-12 11:38 ` Adhemerval Zanella
  2020-11-12 23:03   ` Stafford Horne
  0 siblings, 1 reply; 3+ messages in thread
From: Adhemerval Zanella @ 2020-11-12 11:38 UTC (permalink / raw)
  To: libc-alpha



On 11/11/2020 18:46, Stafford Horne via Libc-alpha wrote:
> Calls to sem_wait may use the __futex_abstimed_wait_cancelable64
> function that is built in futex-internal.  If we get a C++ exception,
> i.e. thread cancel when we are waiting on a semaphore thread unwinding
> fails.  Example test: nptl/tst-cancel24
> 
> Adding -fexceptions flag when building futex-internal fixes this.
> ---
>  nptl/Makefile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index b30d263ca4..a1ffb6258a 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -220,6 +220,7 @@ CFLAGS-pthread_cond_wait.c += -fexceptions -fasynchronous-unwind-tables
>  CFLAGS-sem_wait.c += -fexceptions -fasynchronous-unwind-tables
>  CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables
>  CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
> +CFLAGS-futex-internal.c += -fexceptions -fasynchronous-unwind-tables
>  
>  # These are the function wrappers we have to duplicate here.
>  CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
> 

I have fixed it with a04689ee7a2600a1466354096123c57ccd1e1dc7, are
you still seeing the same issue with master?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] nptl: Fix issue unwinding through sem_wait futex
  2020-11-12 11:38 ` Adhemerval Zanella
@ 2020-11-12 23:03   ` Stafford Horne
  0 siblings, 0 replies; 3+ messages in thread
From: Stafford Horne @ 2020-11-12 23:03 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: GLIBC patches

On Thu, Nov 12, 2020, 8:39 PM Adhemerval Zanella via Libc-alpha <
libc-alpha@sourceware.org> wrote:

>
>
> On 11/11/2020 18:46, Stafford Horne via Libc-alpha wrote:
> > Calls to sem_wait may use the __futex_abstimed_wait_cancelable64
> > function that is built in futex-internal.  If we get a C++ exception,
> > i.e. thread cancel when we are waiting on a semaphore thread unwinding
> > fails.  Example test: nptl/tst-cancel24
> >
> > Adding -fexceptions flag when building futex-internal fixes this.
> > ---
> >  nptl/Makefile | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/nptl/Makefile b/nptl/Makefile
> > index b30d263ca4..a1ffb6258a 100644
> > --- a/nptl/Makefile
> > +++ b/nptl/Makefile
> > @@ -220,6 +220,7 @@ CFLAGS-pthread_cond_wait.c += -fexceptions
> -fasynchronous-unwind-tables
> >  CFLAGS-sem_wait.c += -fexceptions -fasynchronous-unwind-tables
> >  CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables
> >  CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
> > +CFLAGS-futex-internal.c += -fexceptions -fasynchronous-unwind-tables
> >
> >  # These are the function wrappers we have to duplicate here.
> >  CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
> >
>
> I have fixed it with a04689ee7a2600a1466354096123c57ccd1e1dc7, are
> you still seeing the same issue with master?
>

(Replying on phone)

No I am on about 2 month old master. I'll try the latest.  I checked master
to see if there were any patches addressing this, but I must have missed
it. Hence, I sent the patch.

Thanks for replying with the details.

I'll rebase and report if there are more issues.

I'll also pick up the new syscall errno handling with the rebase. Which
will be good.

-Stafford

>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-11-12 23:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-11 21:46 [PATCH] nptl: Fix issue unwinding through sem_wait futex Stafford Horne
2020-11-12 11:38 ` Adhemerval Zanella
2020-11-12 23:03   ` Stafford Horne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).