Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Nov 2004 17:23:28 -0500
From:      Jonathan Lennox <lennox@cs.columbia.edu>
To:        Arjan de Vet <devet@devet.org>
Cc:        current@freebsd.org
Subject:   Re: 5.3-RC2: kqueue descriptor leak in resolver functions?
Message-ID:  <16778.44000.981070.769175@cnr.cs.columbia.edu>
In-Reply-To: <20041102094145.GA4698@adv.devet.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Arjan de Vet writes:
> A ktrace of the mozilla process seems to point to the DNS resolver code
> leaking kqueue descriptors (I could not find any kqueue() calls in the
> mozilla code itself).

I've noticed (and reported) this with 5.2.1, in the specific case when
you're using libc_r and linking statically.  I never heard anything back,
though.

The problem is that 'kqueue' isn't namespace'd (#defined as _kqueue) in
lib/libc/include/[un]namespace.h, and the thread libraries don't draw in
_kqueue in their 'references' array.

Attached below is a patch against 5.2.1.  It should apply to 5.3-RC2 as
well.  The patch for lib/libc_r/uthread/uthread_init.c may also need to be
applied to lib/libpthread/thread/thr_init.c and
lib/libthr/thread/thr_init.c.

See PR bin/58687.

--- lib/libc_r/uthread/uthread_init.c.orig	Wed Oct 29 11:00:53 2003
+++ lib/libc_r/uthread/uthread_init.c	Wed Oct 29 11:01:21 2003
@@ -99,6 +99,7 @@
 	&_getsockopt,
 	&_ioctl,
 	&_kevent,
+	&_kqueue,
 	&_listen,
 	&_nanosleep,
 	&_open,
--- lib/libc/include/namespace.h.orig	Wed Oct 29 14:13:09 2003
+++ lib/libc/include/namespace.h	Wed Oct 29 14:13:31 2003
@@ -77,6 +77,7 @@
 #define		getsockopt			_getsockopt
 #define		ioctl				_ioctl
 /* #define		kevent				_kevent */
+#define		kqueue				_kqueue
 #define		listen				_listen
 #define		nanosleep			_nanosleep
 #define		open				_open
--- lib/libc/include/un-namespace.h.orig	Wed Oct 29 14:13:13 2003
+++ lib/libc/include/un-namespace.h	Wed Oct 29 14:13:55 2003
@@ -58,6 +58,7 @@
 #undef		getsockopt
 #undef		ioctl
 #undef		kevent
+#undef		kqueue
 #undef		listen
 #undef		nanosleep
 #undef		open


-- 
Jonathan Lennox
lennox@cs.columbia.edu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16778.44000.981070.769175>