From 3b22ffe58a0e8e958db3dbc613853ec8771df574 Mon Sep 17 00:00:00 2001 From: Michael Felt Date: Fri, 2 Aug 2019 16:56:34 +0000 Subject: [PATCH 1/2] Define THREAD_STACK_SIZE for AIX to pass default recursion limit test --- .../next/Library/2019-08-02-16-44-42.bpo-18049.OA4qBL.rst | 3 +++ Python/thread_pthread.h | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2019-08-02-16-44-42.bpo-18049.OA4qBL.rst diff --git a/Misc/NEWS.d/next/Library/2019-08-02-16-44-42.bpo-18049.OA4qBL.rst b/Misc/NEWS.d/next/Library/2019-08-02-16-44-42.bpo-18049.OA4qBL.rst new file mode 100644 index 000000000000000..36a4de384cc08dc --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-08-02-16-44-42.bpo-18049.OA4qBL.rst @@ -0,0 +1,3 @@ +Add definition of THREAD_STACK_SIZE for AIX in Python/thread_pthread.h +The default thread stacksize caused crashes with the default recursion limit +Patch by M Felt diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 994e35b2cc0803c..83b7e7723d00bba 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -47,6 +47,10 @@ #undef THREAD_STACK_SIZE #define THREAD_STACK_SIZE 0x400000 #endif +#if defined(_AIX) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0 +#undef THREAD_STACK_SIZE +#define THREAD_STACK_SIZE 0x400000 +#endif /* for safety, ensure a viable minimum stacksize */ #define THREAD_STACK_MIN 0x8000 /* 32 KiB */ #else /* !_POSIX_THREAD_ATTR_STACKSIZE */ From 5d743ffd6d3f24f3350fa56aaad5d4052a31c13a Mon Sep 17 00:00:00 2001 From: Michael Felt Date: Fri, 2 Aug 2019 17:15:01 +0000 Subject: [PATCH 2/2] Needed to reduce size to allow test_queue to pass --- Python/thread_pthread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index 83b7e7723d00bba..5678b05ced3698e 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -49,7 +49,7 @@ #endif #if defined(_AIX) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0 #undef THREAD_STACK_SIZE -#define THREAD_STACK_SIZE 0x400000 +#define THREAD_STACK_SIZE 0x200000 #endif /* for safety, ensure a viable minimum stacksize */ #define THREAD_STACK_MIN 0x8000 /* 32 KiB */