public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function
@ 2024-09-08  2:12 snown at live dot cn
  2024-09-08  2:40 ` [Bug nptl/32151] " snown at live dot cn
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-08  2:12 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

            Bug ID: 32151
           Summary: pthread_cancel causes deadlock in syslog function
           Product: glibc
           Version: 2.26
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: nptl
          Assignee: unassigned at sourceware dot org
          Reporter: snown at live dot cn
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

Created attachment 15695
  --> https://sourceware.org/bugzilla/attachment.cgi?id=15695&action=edit
pthread_cancel causes deadlock in syslog test demo

Descriptions:
Create two threads, A and B, each calling the syslog function, which will
probabilistically cause a deadlock in the syslog function when thread B is
cancelled by the pthread_cancel function.Test demo Please refer to the
attachment "syslog_pthreadcancel.c". Test demo gcc compilation command as
follows.
/opt/Petalinux/2018.3/tools/linux-i386/aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
-o syslog.out  syslog_pthreadcancel.c  -g -lpthread 

Reproduction Environment:
AARCH64 and AARCH32

GCC version :
root@20f5ea71ff60:~#
/opt/Petalinux/2018.3/tools/linux-i386/aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
-v
Using built-in specs.
COLLECT_GCC=/opt/Petalinux/2018.3/tools/linux-i386/aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/opt/Petalinux/2018.3/tools/linux-i386/aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/7.3.1/lto-wrapper
Target: aarch64-linux-gnu
Configured with:
/proj/esdt_sdk/gnu_abe/ABE/builds/lin/arm/arm-linux/snapshots/gcc-linaro-7.3-2018.04-rc3/configure
SHELL=/bin/sh --with-bugurl=https://bugs.linaro.org
--with-mpc=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu
--with-mpfr=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu
--with-gmp=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu
--with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap
--with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-c99
--enable-gnu-indirect-function --disable-multilib --with-arch=armv8-a
--enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419
--enable-multiarch CFLAGS=-O2 CXXFLAGS=-O2 --disable-silent-rules
--enable-libquadmath --enable-libg2c --enable-symvers=gnu
--enable-libstdcxx-pch --enable-libssp --disable-libmudflap
--enable-checking=release --enable-cheaders=c_global
--enable-poison-system-directories --enable-clocale=generic --enable-shared
--enable-threads=posix --disable-multilib --enable-c99 --without-local-prefix
--enable-lto --disable-bootstrap --with-linker-hash-style=gnu --with-ppl=no
--with-cloog=no --without-isl --enable-nls --enable-__cxa_atexit
--with-build-sysroot=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/libc
--enable-plugins --enable-linker-build-id --enable-long-long --enable-shared
--with-sysroot=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/libc
--enable-languages=c,c++,lto --enable-checking=yes --disable-bootstrap
--with-bugurl=https://bugs.linaro.org --build=x86_64-unknown-linux-gnu
--host=x86_64-unknown-linux-gnu --target=aarch64-linux-gnu
--prefix=/proj/esdt_sdk/gnu_abe/ABE/builds/lin/aarch64/aarch64-linux/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.3.1 20180314 (Linaro GCC 7.3-2018.04-rc3)
root@20f5ea71ff60:~#

I debugged with GDB and found a deadlock inside the syslog function, the call
stack is as follows.

(gdb) thread apply all bt

Thread 2 (Thread 0xb6da7460 (LWP 749) "syslog.out"):
#0  0xb6e837e8 in __lll_lock_wait_private () from /lib/libc.so.6
#1  0xb6e728bc in __vsyslog_chk () from /lib/libc.so.6
#2  0xb6e729a4 in syslog () from /lib/libc.so.6
#3  0x000107e4 in run (arg=0x0) at syslog_pthread_cancel.c:40
#4  0xb6eecd7c in start_thread () from /lib/libpthread.so.0
#5  0xb6e763e8 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0xb6fa6010 (LWP 748) "syslog.out"):
#0  0xb6e83820 in __lll_lock_wait_private () from /lib/libc.so.6
#1  0xb6e728bc in __vsyslog_chk () from /lib/libc.so.6
#2  0xb6e729a4 in syslog () from /lib/libc.so.6
#3  0x00010abc in main () at syslog_pthread_cancel.c:103
(gdb)

I checked the syslog function source code and found that the cancel_handler
function is registered via the __libc_cleanup_push macro using __attribute__
((__cleanup__ ())) before calling __libc_lock_lock to get the lock.
Inside the cancel_handler function the __libc_lock_unlock is called to release
the lock, but I don't know why the cancel_handler function is not called after
the cancellation point.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
@ 2024-09-08  2:40 ` snown at live dot cn
  2024-09-09  9:21 ` fweimer at redhat dot com
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-08  2:40 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

邢 启阳 <snown at live dot cn> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |snown at live dot cn

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
  2024-09-08  2:40 ` [Bug nptl/32151] " snown at live dot cn
@ 2024-09-09  9:21 ` fweimer at redhat dot com
  2024-09-10 12:54 ` snown at live dot cn
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: fweimer at redhat dot com @ 2024-09-09  9:21 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fweimer at redhat dot com
             Status|UNCONFIRMED                 |WAITING
     Ever confirmed|0                           |1
              Flags|                            |security-
   Last reconfirmed|                            |2024-09-09

--- Comment #1 from Florian Weimer <fweimer at redhat dot com> ---
Looks like this may have been fixed as part of the changes for bug 26100?

commit c4e4b2e149705559d28b16a9b47ba2f6142d6a6c
Author: Andreas Schwab <schwab@suse.de>
Date:   Tue Jun 23 12:55:49 2020 +0200

    Correct locking and cancellation cleanup in syslog functions (bug 26100)

    Properly serialize the access to the global state shared between the
    syslog functions, to avoid races in multithreaded processes.  Protect a
    local allocation in the __vsyslog_internal function from leaking during
    cancellation.

Would you please check if this fixes the issue for you? Thanks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
  2024-09-08  2:40 ` [Bug nptl/32151] " snown at live dot cn
  2024-09-09  9:21 ` fweimer at redhat dot com
@ 2024-09-10 12:54 ` snown at live dot cn
  2024-09-10 14:10 ` adhemerval.zanella at linaro dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-10 12:54 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

--- Comment #2 from 邢 启阳 <snown at live dot cn> ---
Based on glibc-2.26, I merged part of the commit
c4e4b2e149705559d28b16a9b47ba2f6142d6a6c into syslog.c . but after testing, I
found that it still deadlocks. 

code changes are as follows
=================================================
diff --git a/misc/syslog.c b/misc/syslog.c
index 6922ad6..78d7021 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -91,13 +91,19 @@ struct cleanup_arg
 static void
 cancel_handler (void *ptr)
 {
-#ifndef NO_SIGPIPE
-  /* Restore the old signal handler.  */
-  struct cleanup_arg *clarg = (struct cleanup_arg *) ptr;
-
-  if (clarg != NULL && clarg->oldaction != NULL)
-    __sigaction (SIGPIPE, clarg->oldaction, NULL);
-#endif
+   /* Restore the old signal handler.  */
+   struct cleanup_arg *clarg = (struct cleanup_arg *) ptr;
+
+   if (clarg != NULL)
+     {
+ #ifndef NO_SIGPIPE
+       if (clarg->oldaction != NULL)
+         __sigaction (SIGPIPE, clarg->oldaction, NULL);
+ #endif
+
+       /* Free the memstream buffer,  */
+       free (clarg->buf);
+     }

   /* Free the lock.  */
   __libc_lock_unlock (syslog_lock);
@@ -155,9 +161,15 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list
ap)
                pri &= LOG_PRIMASK|LOG_FACMASK;
        }

+    struct cleanup_arg clarg;
+    clarg.buf = NULL;
+    clarg.oldaction = NULL;
+    __libc_cleanup_push (cancel_handler, &clarg);
+    __libc_lock_lock (syslog_lock);
+
        /* Check priority against setlogmask values. */
        if ((LOG_MASK (LOG_PRI (pri)) & LogMask) == 0)
-               return;
+               goto out;

        /* Set default facility if none specified. */
        if ((pri & LOG_FACMASK) == 0)
@@ -224,6 +236,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list
ap)
            /* Close the memory stream; this will finalize the data
               into a malloc'd buffer in BUF.  */
            fclose (f);
+        clarg.buf = buf;
          }

        /* Output to stderr if requested. */
@@ -240,22 +253,11 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list
ap)
                    v->iov_base = (char *) "\n";
                    v->iov_len = 1;
                  }
-
-               __libc_cleanup_push (free, buf == failbuf ? NULL : buf);
-
-               /* writev is a cancellation point.  */
+
+        /* writev is a cancellation point.  */
                (void)__writev(STDERR_FILENO, iov, v - iov + 1);
-
-               __libc_cleanup_pop (0);
-       }
-
-       /* Prepare for multiple users.  We have to take care: open and
-          write are cancellation points.  */
-       struct cleanup_arg clarg;
-       clarg.buf = buf;
-       clarg.oldaction = NULL;
-       __libc_cleanup_push (cancel_handler, &clarg);
-       __libc_lock_lock (syslog_lock);
+
+    }

 #ifndef NO_SIGPIPE
        /* Prepare for a broken connection.  */
@@ -308,7 +310,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list
ap)
        if (sigpipe == 0)
                __sigaction (SIGPIPE, &oldaction, (struct sigaction *) NULL);
 #endif
-
+out:
        /* End of critical section.  */
        __libc_cleanup_pop (0);
        __libc_lock_unlock (syslog_lock);
@@ -428,9 +430,11 @@ int
 setlogmask (int pmask)
 {
        int omask;
-
+    /* Protect against multiple users.  */
+    __libc_lock_lock (syslog_lock);
        omask = LogMask;
        if (pmask != 0)
                LogMask = pmask;
+    __libc_lock_unlock (syslog_lock);
        return (omask);
 }
root@MSI:~/workproject/glibc-2.26_build/glibc-2.26#

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
                   ` (2 preceding siblings ...)
  2024-09-10 12:54 ` snown at live dot cn
@ 2024-09-10 14:10 ` adhemerval.zanella at linaro dot org
  2024-09-12  8:03 ` snown at live dot cn
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2024-09-10 14:10 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |adhemerval.zanella at linaro dot o
                   |                            |rg

--- Comment #3 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
Instead of using a backport, could you check with the master branch?

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
                   ` (3 preceding siblings ...)
  2024-09-10 14:10 ` adhemerval.zanella at linaro dot org
@ 2024-09-12  8:03 ` snown at live dot cn
  2024-09-12  8:12 ` snown at live dot cn
  2024-09-14 14:35 ` snown at live dot cn
  6 siblings, 0 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-12  8:03 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

--- Comment #4 from 邢 启阳 <snown at live dot cn> ---
I'm not testing with the new glibc version on the mainline right now。
But some new clues were discovered today based on version 2.26.
I debugging this issue using GDB, and set breakpoint at unwind_stop function.
this is the stack trace we can see:
(gdb) thread apply all bt

Thread 3 (Thread 0x7fbed561f0 (LWP 2546)):
#0  unwind_stop (version=1, actions=26, exc_class=0, exc_obj=0x7fbed56660,
context=0x7fbed55370, stop_parameter=0x7fbed55a28) at unwind.c:43
#1  0x0000007fbe541008 in ?? () from /lib/libgcc_s.so.1
#2  0x0000007fbe541364 in _Unwind_ForcedUnwind () from /lib/libgcc_s.so.1
#3  0x0000007fbf6b5fd8 in __GI___pthread_unwind (buf=<optimized out>) at
unwind.c:121
#4  0x0000007fbf65ac68 in __pthread_unwind (buf=<optimized out>) at
forward.c:206
#5  0x0000007fbf62daf8 in __do_cancel () at pthreadP.h:297
#6  __libc_enable_asynccancel () at ../nptl/cancellation.c:49
#7  0x0000007fbf622054 in __libc_send (fd=3, buf=0x7fb0001000, len=73,
flags=-2313, flags@entry=16384) at ../sysdeps/unix/sysv/linux/send.c:28
#8  0x0000007fbf61d24c in _GI___vsyslog_chk (pri=<optimized out>,
flag=flag@entry=-1, fmt=0x400f88 "this is %u process 6\n", ap=...) at
../misc/syslog.c:281
#9  0x0000007fbf61d43c in syslog (pri=<optimized out>, fmt=<optimized out>) at
../misc/syslog.c:123
#10 0x0000000000400a64 in cancel_run (arg=0x0) at syslog_pthreadcancel.c:42
#11 0x0000007fbf6acf70 in start_thread (arg=0x7ffffff6f6) at
pthread_create.c:465
#12 0x0000007fbf62117c in thread_start () at
../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Thread 2 (Thread 0x7fbf5561f0 (LWP 2545)):
#0  0x0000007fbf62da34 in __lll_lock_wait_private (futex=0x7fbf6a2ea4
<syslog_lock>) at ./lowlevellock.c:33
#1  0x0000007fbf61d374 in _GI___vsyslog_chk (pri=6, flag=flag@entry=-1,
fmt=0x400fb8 "this is %u process 8\n", ap=...) at ../misc/syslog.c:168
#2  0x0000007fbf61d43c in syslog (pri=<optimized out>, fmt=<optimized out>) at
../misc/syslog.c:123
#3  0x0000000000400bf8 in run (arg=0x0) at syslog_pthreadcancel.c:70
#4  0x0000007fbf6acf70 in start_thread (arg=0x7ffffff6ff) at
pthread_create.c:465
#5  0x0000007fbf62117c in thread_start () at
../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Thread 1 (Thread 0x7fbf6f8010 (LWP 2542)):
#0  0x0000007fbf62da5c in __lll_lock_wait_private (futex=0x7fbf6a2ea4
<syslog_lock>) at ./lowlevellock.c:30
#1  0x0000007fbf61d374 in _GI___vsyslog_chk (pri=6, flag=flag@entry=-1,
fmt=0x4010f0 "%u process send cancel signal\n", ap=...) at ../misc/syslog.c:168
#2  0x0000007fbf61d43c in syslog (pri=<optimized out>, fmt=<optimized out>) at
../misc/syslog.c:123
#3  0x0000000000400d98 in main () at syslog_pthreadcancel.c:110
(gdb) b __longjmp
(gdb) c
Continuing.
Thread 3 "syslog.out" hit Breakpoint 3, __longjmp () at
../sysdeps/aarch64/__longjmp.S:51
51              ../sysdeps/aarch64/__longjmp.S: No such file or directory.
(gdb) thread apply all bt

Thread 3 (Thread 0x7fbed561f0 (LWP 2546)):
#0  __longjmp () at ../sysdeps/aarch64/__longjmp.S:51
#1  0x0592482a06d21a88 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x7fbf5561f0 (LWP 2545)):
#0  0x0000007fbf62da34 in __lll_lock_wait_private (futex=0x7fbf6a2ea4
<syslog_lock>) at ./lowlevellock.c:33
#1  0x0000007fbf61d374 in _GI___vsyslog_chk (pri=6, flag=flag@entry=-1,
fmt=0x400fb8 "this is %u process 8\n", ap=...) at ../misc/syslog.c:168
#2  0x0000007fbf61d43c in syslog (pri=<optimized out>, fmt=<optimized out>) at
../misc/syslog.c:123
#3  0x0000000000400bf8 in run (arg=0x0) at syslog_pthreadcancel.c:70
#4  0x0000007fbf6acf70 in start_thread (arg=0x7ffffff6ff) at
pthread_create.c:465
#5  0x0000007fbf62117c in thread_start () at
../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Thread 1 (Thread 0x7fbf6f8010 (LWP 2542)):
#0  0x0000007fbf62da5c in __lll_lock_wait_private (futex=0x7fbf6a2ea4
<syslog_lock>) at ./lowlevellock.c:30
#1  0x0000007fbf61d374 in _GI___vsyslog_chk (pri=6, flag=flag@entry=-1,
fmt=0x4010f0 "%u process send cancel signal\n", ap=...) at ../misc/syslog.c:168
#2  0x0000007fbf61d43c in syslog (pri=<optimized out>, fmt=<optimized out>) at
../misc/syslog.c:123
#3  0x0000000000400d98 in main () at syslog_pthreadcancel.c:110
(gdb) n
52         in ../sysdeps/aarch64/__longjmp.S
(gdn) n
.
.
.
start_thread (arg=0x7fbed561f0) at pthread_create.c:438
438 pthread_create.c:No such file or directory
(gdb) n
472       in pthread_create.c
(gdb) n
475       in pthread_create.c
(gdb) n
478       in pthread_create.c
(gdb) n
483       in pthread_create.c
(gdb) n
488       in pthread_create.c
(gdb) n
519       in pthread_create.c
(gdb) n
556       in pthread_create.c
(gdb) n
559       in pthread_create.c 
(gdb) n
560       in pthread_create.c
(gdb) n
562       in pthread_create.c
(gdb) n
581       in pthread_create.c
(gdb) n
584       in pthread_create.c
(gdb) n
608       in pthread_create.c
(gdb) n
[Thread 0x7fbed561f0 (LWP 2546) exited]


In the GDB backtrace we can see it unwinds through the pthread cancel signal
frame,__libc_enable_asynccancel all the way to our thread routine cancel_run
thread. because more function in libgcc_s.so.1 can’t be displayed in gdb, to
really ensure the GCC unwinder is working as excepted,let GDB run continue,make
sure to run to the breakpoint unwind_stop function every time 。In debugging i
found that if the thread is canceled after calling the __libc_send function,
the unwinder is bailing out early.
when looking at the glibc build I noticed the  .eh_frame section is missing
from socket/send.o
I modified the socket/Makefile as follow, rebuild, no deadlock after testing
root@MSI:~/workproject/glibc-2.26_build/glibc-2.26# git diff diff --git
a/socket/Makefile b/socket/Makefile index 1e2555d..a019e24 100644 ---
a/socket/Makefile +++ b/socket/Makefile @@ -36,3 +36,5 @@ tests := tst-accept4
aux := sa_len include ../Rules +CFLAGS-send.c = -fexceptions
-fasynchronous-unwind-tables +
root@MSI:~/workproject/glibc-2.26_build/glibc-2.26#

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
                   ` (4 preceding siblings ...)
  2024-09-12  8:03 ` snown at live dot cn
@ 2024-09-12  8:12 ` snown at live dot cn
  2024-09-14 14:35 ` snown at live dot cn
  6 siblings, 0 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-12  8:12 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

--- Comment #5 from 邢 启阳 <snown at live dot cn> ---
root@MSI:~/workproject/glibc-2.26_build/glibc-2.26# git diff 
diff --git a/socket/Makefile b/socket/Makefile 
index 1e2555d..a019e24 100644 --- a/socket/Makefile 
+++ b/socket/Makefile 
@@ -36,3 +36,5 @@ tests := tst-accept4 
aux := sa_len 
include ../Rules 
+CFLAGS-send.c = -fexceptions -fasynchronous-unwind-tables 
+ 
root@MSI:~/workproject/glibc-2.26_build/glibc-2.26#

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug nptl/32151] pthread_cancel causes deadlock in syslog function
  2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
                   ` (5 preceding siblings ...)
  2024-09-12  8:12 ` snown at live dot cn
@ 2024-09-14 14:35 ` snown at live dot cn
  6 siblings, 0 replies; 8+ messages in thread
From: snown at live dot cn @ 2024-09-14 14:35 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=32151

--- Comment #6 from 邢 启阳 <snown at live dot cn> ---
I've checked the master branch code and commit logs , found that this issue may
have been fixed in the ccommit: 78d1724d53e23fcbbf4df832015aae269b98249c "nptl:
Remove send from libpthread", which was included in glibc 2.34, and I'll be
testing glibc 2.33 and 2.34 separately later.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

end of thread, other threads:[~2024-09-14 14:35 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-08  2:12 [Bug nptl/32151] New: pthread_cancel causes deadlock in syslog function snown at live dot cn
2024-09-08  2:40 ` [Bug nptl/32151] " snown at live dot cn
2024-09-09  9:21 ` fweimer at redhat dot com
2024-09-10 12:54 ` snown at live dot cn
2024-09-10 14:10 ` adhemerval.zanella at linaro dot org
2024-09-12  8:03 ` snown at live dot cn
2024-09-12  8:12 ` snown at live dot cn
2024-09-14 14:35 ` snown at live dot cn

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).