Eso es un problema de falta de salida de la recursión. El Stack Overflow se produce cuando la rutina se llama recursivamente a sí misma todo el rato, y no existe una condición para salir de la recursión. Como a cada recursión se salva el el Stack la dirección
de regreso y las variables locales, al cabo de unos miles de iteraciones el Stack se desborda y se produce un error.
Si no es un error, y realmente necesitas *miles* de niveles de recursividad, entonces el algoritmo está mál planteado. Tendrás que buscar la forma de expresarlo en forma iterativa en lugar de recursiva.