Can you get a symbolic stack dump from all threads at some point when memory usage is getting a bit high? That ought to let you see which symbols are involved in the recursion.