threads/144558: Repeated calls to __rpc_createerr allocates
multiple thread-specific data slots
John Baldwin
jhb at freebsd.org
Tue Mar 9 15:20:04 UTC 2010
The following reply was made to PR threads/144558; it has been noted by GNATS.
From: John Baldwin <jhb at freebsd.org>
To: freebsd-threads at freebsd.org
Cc: Sam Robb <samrobb at averesystems.com>,
freebsd-gnats-submit at freebsd.org
Subject: Re: threads/144558: Repeated calls to __rpc_createerr allocates multiple thread-specific data slots
Date: Tue, 9 Mar 2010 10:11:00 -0500
On Monday 08 March 2010 12:51:39 pm Sam Robb wrote:
>
> >Number: 144558
> >Category: threads
> >Synopsis: Repeated calls to __rpc_createerr allocates multiple
thread-specific data slots
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: freebsd-threads
> >State: open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class: sw-bug
> >Submitter-Id: current-users
> >Arrival-Date: Mon Mar 08 18:00:16 UTC 2010
> >Closed-Date:
> >Last-Modified:
> >Originator: Sam Robb
> >Release: 7.1
> >Organization:
> Avere Systems
> >Environment:
> FreeBSD build1.arriad.com 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1
08:58:24 UTC 2009
root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
> >Description:
> On the first call to __rpc_createerr() in a thread, the function attempts to
allocate a thread-specific slot to hold the rpc error data. Subsequent calls
from the same thread continue to allocate new thread-specific slots without
freeing the first, so that repeated calls eventually result in all available
thread-specific data slots being allocated.
Can you try this patch instead? It changes the RPC code in libc to use
pthread_once() to execute init functions that create various pthread keys used
for per-thread data.
http://www.FreeBSD.org/~jhb/patches/rpc_once.patch
--
John Baldwin
More information about the freebsd-threads
mailing list