This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug nptl/5171] Memory leak in nptl pthread_create() call


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]