This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Michael.Felt
Recipients Michael.Felt, matrixise, miss-islington, ned.deily, ronaldoussoren, steve.dower, vstinner
Date 2019-08-02.09:09:45
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1564736986.12.0.271037628008.issue18049@roundup.psfhosted.org>
In-reply-to
Content
*** 
Looking in ./Python/thread_pthread.h"

  +252  #if defined(THREAD_STACK_SIZE)
  +253      PyThreadState *tstate = _PyThreadState_GET();
  +254      size_t stacksize = tstate ? tstate->interp->pythread_stacksize : 0;
  +255      tss = (stacksize != 0) ? stacksize : THREAD_STACK_SIZE;
  +256      if (tss != 0) {
  +257          if (pthread_attr_setstacksize(&attrs, tss) != 0) {
  +258              pthread_attr_destroy(&attrs);
  +259              return PYTHREAD_INVALID_THREAD_ID;
  +260          }
  +261      }
  +262  #endif

It appears asif the call needed (for AIX) - thread_attr_setstacksize(&attrs, tss) should be occurring.

Can you help me with a quick program that reports back the actual stack size an AIX thread has?

What may be at the heart of this (assuming the call above is working as expected) - the default memory size for AIX 32-bit is 256MB. Assuming 16 to 32MB is already in use - if I understand this "recurse" logic - after about 12-14 recursions the 256MB is consumed.

In short (work calls) - it seems the API mentioned is already in place and what is happening in terms of "exception catching" is different.

Looking forward to hints on how to dig further.
History
Date User Action Args
2019-08-02 09:09:46Michael.Feltsetrecipients: + Michael.Felt, ronaldoussoren, vstinner, ned.deily, steve.dower, matrixise, miss-islington
2019-08-02 09:09:46Michael.Feltsetmessageid: <1564736986.12.0.271037628008.issue18049@roundup.psfhosted.org>
2019-08-02 09:09:46Michael.Feltlinkissue18049 messages
2019-08-02 09:09:45Michael.Feltcreate