From 3e377fd35bf78905ea5d6564ec865d4877e924e5 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 21 Oct 2022 19:40:08 +0200 Subject: [PATCH] MDEV-15795 Stack exceeded if pthread_attr_setstacksize(&thr_attr,8196) succeeds on Linux this pthread_attr_setstacksize() fails with EINVAL "The stack size is less than PTHREAD_STACK_MIN (16384) bytes". But on FreeBSD it succeeds and causes a crash later, as 8196 is too little. Let's keep the stack at its default size in the timer thread. --- mysys/my_pthread.c | 1 - mysys/thr_alarm.c | 1 - mysys/thr_timer.c | 1 - 3 files changed, 3 deletions(-) diff --git a/mysys/my_pthread.c b/mysys/my_pthread.c index e2795ed7bb90d..dc6e0904951f6 100644 --- a/mysys/my_pthread.c +++ b/mysys/my_pthread.c @@ -263,7 +263,6 @@ int sigwait(sigset_t *setp, int *sigp) pthread_attr_init(&thr_attr); pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS); pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED); - pthread_attr_setstacksize(&thr_attr,8196); pthread_create(&sigwait_thread_id, &thr_attr, sigwait_thread, setp); pthread_attr_destroy(&thr_attr); } diff --git a/mysys/thr_alarm.c b/mysys/thr_alarm.c index 8a89762de2a8a..f6eb963c34c9c 100644 --- a/mysys/thr_alarm.c +++ b/mysys/thr_alarm.c @@ -114,7 +114,6 @@ void init_thr_alarm(uint max_alarms) pthread_attr_init(&thr_attr); pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS); pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED); - pthread_attr_setstacksize(&thr_attr,8196); mysql_thread_create(key_thread_alarm, &alarm_thread, &thr_attr, alarm_handler, NULL); pthread_attr_destroy(&thr_attr); diff --git a/mysys/thr_timer.c b/mysys/thr_timer.c index 1532875d7f3f5..1b614ac48bd25 100644 --- a/mysys/thr_timer.c +++ b/mysys/thr_timer.c @@ -85,7 +85,6 @@ my_bool init_thr_timer(uint alloc_timers) /* Create a thread to handle timers */ pthread_attr_init(&thr_attr); pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS); - pthread_attr_setstacksize(&thr_attr,8196); thr_timer_inited= 1; if (mysql_thread_create(key_thread_timer, &timer_thread, &thr_attr, timer_handler, NULL))