This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nptl/21672] New: sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: "slyfox at inbox dot ru" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sun, 25 Jun 2017 21:52:33 +0000
- Subject: [Bug nptl/21672] New: sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=21672
Bug ID: 21672
Summary: sys-libs/glibc on ia64 crashes on thread exit: signal
SIGSEGV, Segmentation fault: pthread_create.c:432:
__madvise (pd->stackblock, freesize -
PTHREAD_STACK_MIN, MADV_DONTNEED);
Product: glibc
Version: 2.24
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: nptl
Assignee: unassigned at sourceware dot org
Reporter: slyfox at inbox dot ru
CC: drepper.fsp at gmail dot com
Target Milestone: ---
First found in gentoo in https://bugs.gentoo.org/622694
The tets file:
$ cat bug.c
// how to crash: gcc -O0 -ggdb3 -o r bug.c -pthread && ./r
#include <pthread.h>
static void * f (void * p)
{
return NULL;
}
int main (int argc, const char ** argv)
{
pthread_t t;
pthread_create (&t, NULL, &f, NULL);
pthread_join (t, NULL);
return 0;
}
How to crash:
$ gcc -O0 -ggdb3 -o r bug.c -pthread && ./r
Segmentation fault (core dumped)
$ gdb r core
...
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x2000000000077da0 in start_thread (arg=0x0) at pthread_create.c:432
432 __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN,
MADV_DONTNEED);
[Current thread is 1 (Thread 0x2000000000b6b1f0 (LWP 20912))]
(gdb) list
427 #ifdef _STACK_GROWS_DOWN
428 char *sp = CURRENT_STACK_FRAME;
429 size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1;
430 assert (freesize < pd->stackblock_size);
431 if (freesize > PTHREAD_STACK_MIN)
432 __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN,
MADV_DONTNEED);
433 #else
434 /* Page aligned start of memory to free (higher than or equal
435 to current sp plus the minimum stack size). */
436 void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME
#0 0x2000000000077da0 in start_thread (arg=0x0) at pthread_create.c:432
pd = 0x0
now = <optimized out>
unwind_buf = <error reading variable unwind_buf (Cannot access memory
at address 0xfffffffffffffd90)>
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = 0x2000000000b6a870 ""
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#1 0x0000000000000000 in ?? ()
--
You are receiving this mail because:
You are on the CC list for the bug.
- Follow-Ups:
- [Bug nptl/21672] sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: slyfox at inbox dot ru
- [Bug nptl/21672] sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: slyfox at inbox dot ru
- [Bug nptl/21672] sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: slyfox at inbox dot ru
- [Bug nptl/21672] sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: slyfox at inbox dot ru
- [Bug nptl/21672] sys-libs/glibc on ia64 crashes on thread exit: signal SIGSEGV, Segmentation fault: pthread_create.c:432: __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
- From: slyfox at inbox dot ru