The MySQL error code 1436, corresponding to ER_STACK_OVERRUN_NEED_MORE, indicates a thread stack overrun issue. This error occurs when a MySQL thread's stack usage exceeds the limit set by the 'thread_stack' server variable.
The error message provides details about the amount of stack used and the stack size limit. For example, the message "1436 - Thread stack overrun: 6136 bytes used of a 131072 byte stack, and 128000 bytes needed" indicates that 6136 bytes of stack memory were used out of a total available size of 131072 bytes, but the thread required an additional 128000 bytes.
One common cause of this error is when the 'thread_stack' variable is set to a low value, either in the MySQL configuration file (my.cnf) or through a dynamic modification using a SET THREAD STACK command.
The MySQL documentation states that the default value for 'thread_stack' is 256K (64-bit platforms) or 192K (32-bit platforms). However, these values can be modified during compilation or runtime.
To resolve this error, you can increase the value of 'thread_stack' in the MySQL configuration file or using a SET THREAD STACK command. Remember to restart MySQL after making changes to the configuration file.
Additionally, reviewing the code and reducing the stack usage of the thread that triggers the error can help avoid this issue in the future.
The above is the detailed content of What causes MySQL error 1436: Thread Stack Overrun, and how can I fix it?. For more information, please follow other related articles on the PHP Chinese website!