Hi,

Recently, I built mysql5.0 on Solaris 10 amd64, but when running "make
test", the bundled "sp" test failed
with the following error:

mysqltest: At line 1527: query 'call fib(20)' failed: 1436: Thread stack
overrun:  186944 bytes used of a 262144 byte stack, and 81920 bytes
needed.  Use 'mysqld -O thread_stack=#' to specify a bigger stack.
(the last lines may be the most important ones)

Looking at the test source code, I saw the following lines:

# Enable recursion
set @@max_sp_recursion_depth= 20|

# Minimum test: recursion of 3 levels

insert into fib values (0), (1)|

call fib(3)|

select * from fib order by f asc|

delete from fib|

# Original test: 20 levels (may run into memory limits!)

insert into fib values (0), (1)|

call fib(20)|

When calling a recursive procedure many times with a limited stack, it's
quite possible to overrun the stack, and looks like that authors of the
test wanted to note exactly this - could you please let me know if my
understanding is correct, and let me know how to increase the stack
limit for the mysqld process?

Thanks much for your information in advance.



Regards,
Jenny

Reply via email to