Re: python ports broken (sem_destroy: Resource temporarily

From: Daniel Eischen <eischen_at_vigrid.com>
Date: Fri, 6 Feb 2004 16:32:09 -0500 (EST)
On Fri, 6 Feb 2004, Julian Elischer wrote:
> 
> On Fri, 6 Feb 2004, Daniel Eischen wrote:
> 
> > On Fri, 6 Feb 2004, Daniel Eischen wrote:
> > 
> > > On Sat, 7 Feb 2004, Hye-Shik Chang wrote:
> > > > 
> > > > Thank you very much!
> > > > py-bsddb unittest is successfully passed with your fixes. And almost
> > > > all of python regression test set is okay except test_threaded_import.
> > > > 
> > > > alice(perky):/usr/local/lib/python2.3/test% sudo python test_threaded_import.py
> > > > Trying 20 threads ... OK.
> > > > Trying 50 threads ...
> > > > Traceback (most recent call last):
> > > >   File "test_threaded_import.py", line 56, in ?
> > > >     test_main()
> > > >   File "test_threaded_import.py", line 50, in test_main
> > > >     thread.start_new_thread(task, ())
> > > > thread.error: can't start new thread
> > > > 
> > > > FYI, python's thread creation routine is located on
> > > > work/Python-2.3.3/Python/thread_pthread.h:188.
> > > 
> > > How many threads does it try after "Trying 50 threads..."?  You
> > > may have to increase kern.threads.max_threads_per_proc.
> > 
> > Arghh.  It's creating system scope threads, so you have
> > to adjust kern.threads.max_groups_per_proc.
> 
> Why?

System scope threads each have their own KSEG/KSE pair.
The default thread limits in the kernel are:

  kern.threads.max_threads_per_proc: 150
  kern.threads.max_groups_per_proc: 50

By default there are 2 KSEGs for a threaded process in
libpthread: one for scope process threads and one for
the signal handling thread.  That leaves 48 for left for
application use.

Those limits are arbitrary, so you can raise/lower them
if you don't like them.  I thought you came up with those
limits ;-)

-- 
Dan Eischen
Received on Fri Feb 06 2004 - 12:32:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:42 UTC