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