Переполнение стека, stack overflow. Каждый вызов функции помещается на верх стека, после выполнения, снимается. Стек у вашей программы ограничен.
Когда функция бесконечно вызывает саму себя, если вызовов слишком много, происходит ошибка переполнения стека.
Программа не решила, что сделала всю работу, вы каким-то образом запретили ей выдавать ошибку переполнения, поэтому она ее не выдала.