For what it's worth:

Today I helped Jens track down a problem under FreeBSD where Zope was 
crashing rendering a page which rendered successfully on other systems. 
 It turns out that the default stack size for a thread under FreeBSD is 
64K, and that's not enough stack space to render this particular page of 
his (a Tracker page) -- most likely due to changes with how the 
RestrictedPython compiler is used/invoked by DTML processing, since this 
represents a big change from Zope 2.3.

The solution we used was modifying Python/thread_pthread.h and the 
PyThread_start_new_thread function; specifically, instead of using a 
(pthread_attr_t *) NULL, we made a new attribute instead:

pthread_attr_t pta;

pthread_attr_init(&pta);

pthread_attr_setstacksize(&pta, (1<<17));

and using &pta in the thread creation function rather than NULL.

Recompiling Python 2.1 with changes gives it a 128K stack per thread, 
which seemed sufficient to render the Tracker page in question.

Does anyone know of a better way to tune thread stack sizes on FreeBSD?


_______________________________________________
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )

Reply via email to