From owner-freebsd-hackers@FreeBSD.ORG Sun May 25 20:32:09 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4FAED37B401; Sun, 25 May 2003 20:32:09 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7345743F75; Sun, 25 May 2003 20:32:08 -0700 (PDT) (envelope-from eischen@pcnet1.pcnet.com) Received: from pcnet1.pcnet.com (localhost [127.0.0.1]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h4Q3VfwQ014431; Sun, 25 May 2003 23:31:42 -0400 (EDT) Received: from localhost (eischen@localhost)h4Q3Vfh6014427; Sun, 25 May 2003 23:31:41 -0400 (EDT) Date: Sun, 25 May 2003 23:31:41 -0400 (EDT) From: Daniel Eischen To: Andrew MacIntyre In-Reply-To: <20030526084710.A57768@bullseye.apana.org.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-hackers@freebsd.org cc: alane@freebsd.org Subject: Re: setting stacksize in "initial" thread (pthreads, 4.8R) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 03:32:09 -0000 On Mon, 26 May 2003, Andrew MacIntyre wrote: > On Sun, 25 May 2003, Daniel Eischen wrote: > > > On Sun, 25 May 2003, Andrew MacIntyre wrote: > > > > > I have a situation with a Python interpreter built from Python > > > CVS sources that is hitting the stack limit for the "initial" thread > > > imposed by libc_r: PTHREAD_STACK_INITIAL in > > > /usr/src/lib/libc_r/uthread/pthread_private.h is set to 1MB (0x100000). > > {...} > > > Is this something that is common to all python scripts, or is > > it just your own script(s) that is(are) getting caught. It > > seems 1MB is an awful lot to be on the stack, and perhaps some > > things are better malloc'd. > > The problem actually occurs with recursive matches in Python's regex > engine. Python has a hardcoded regex recursion limit, which has trapped > ballistic matches before running out of the default stack. However a > couple of recent fixes to the regex engine have increased stack > consumption, and the hard limit has to be lowered. How do you know it is the main thread stack and not a different thread stack that is getting exceeded? By default, threads other than main get a 64K stack, and this is totally configurable by the application. -- Dan Eischen