This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nptl/5171] Memory leak in nptl pthread_create() call
- From: "vgabor at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: 29 Jan 2009 16:04:56 -0000
- Subject: [Bug nptl/5171] Memory leak in nptl pthread_create() call
- References: <20071013011337.5171.apconole@yahoo.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From vgabor at gmail dot com 2009-01-29 16:04 -------
The leak still there (at least in the version 2.3.4, unfortunately I could not
test it with the latest cvs) The following code produces the valgrind output below.
Additionaly it does not make any differences if the pthread_detach is called
either within the thread before the pthread_exit or just right after the
pthread_create (instead of the pthread_join).
$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.3.4
code:
--------------------------
#include <pthread.h>
#include <stdio.h>
void *startup(void *args)
{
printf("startup\n");
pthread_exit((void *) 0);
}
int main(int argc, char * argv[], char * env[])
{
pthread_t tid;
pthread_create(&tid, NULL, startup, NULL);
pthread_join(tid, NULL);
return 0;
}
--------------------------
valgrind:
--14937-- Startup, with flags:
--14937-- -v
--14937-- --trace-children=yes
--14937-- --track-fds=yes
--14937-- --log-file=valgrind.log
--14937-- --memcheck:show-reachable=yes
--14937-- --memcheck:leak-check=full
--14937-- --memcheck:leak-resolution=high
--14937-- Contents of /proc/version:
--14937-- Linux version 2.6.9-42.0.8.EL
(brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4
.6-3)) #1 Tue Jan 23 12:37:31 EST 2007
==14937==
==14937== malloc/free: in use at exit: 172 bytes in 2 blocks.
==14937== malloc/free: 3 allocs, 1 frees, 1,196 bytes allocated.
==14937==
==14937== searching for pointers to 2 not-freed blocks.
==14937== checked 10,601,248 bytes.
==14937==
==14937== 28 bytes in 1 blocks are still reachable in loss record 1 of 2
==14937== at 0x4004405: malloc (vg_replace_malloc.c:149)
==14937== by 0x44D747: _dl_map_object_deps (in /lib/ld-2.3.4.so)
==14937== by 0x55C2D8: dl_open_worker (in /lib/tls/libc-2.3.4.so)
==14937== by 0x44E66D: _dl_catch_error (in /lib/ld-2.3.4.so)
==14937== by 0x55CAB7: _dl_open (in /lib/tls/libc-2.3.4.so)
==14937== by 0x55DEAC: do_dlopen (in /lib/tls/libc-2.3.4.so)
==14937== by 0x44E66D: _dl_catch_error (in /lib/ld-2.3.4.so)
==14937== by 0x55DF8D: __libc_dlopen_mode (in /lib/tls/libc-2.3.4.so)
==14937== by 0x5C4287: pthread_cancel_init (in /lib/tls/libpthread-2.3.4.so)
==14937== by 0x5C43FC: _Unwind_ForcedUnwind (in /lib/tls/libpthread-2.3.4.so)
==14937== by 0x5C2220: __pthread_unwind (in /lib/tls/libpthread-2.3.4.so)
==14937== by 0x5BE10F: pthread_exit (in /lib/tls/libpthread-2.3.4.so)
==14937==
==14937==
==14937== 144 bytes in 1 blocks are possibly lost in loss record 2 of 2
==14937== at 0x40056BF: calloc (vg_replace_malloc.c:279)
==14937== by 0x450C8A: _dl_allocate_tls (in /lib/ld-2.3.4.so)
==14937== by 0x5BD9FD: pthread_create@@GLIBC_2.1 (in
/lib/tls/libpthread-2.3.4.so)
==14937== by 0x8048551: main (pthreadtest.cpp:16)
==14937==
==14937== LEAK SUMMARY:
==14937== definitely lost: 0 bytes in 0 blocks.
==14937== possibly lost: 144 bytes in 1 blocks.
==14937== still reachable: 28 bytes in 1 blocks.
==14937== suppressed: 0 bytes in 0 blocks.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|WORKSFORME |
http://sourceware.org/bugzilla/show_bug.cgi?id=5171
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.