Replaying a commit log during cluster start-up led to java.lang.StackOverflowError and node crash
1. Perform a lot of updates or deletes, in order to generate a lot of tombstones (file write)
2. Restart the server. (restart)
yes. java.lang.StackOverflowError and node crash
received java.lang.StackOverflowError and node crash.
When looked at the function for iterating over all of the range tombstones, we found out that it is a recursive algorithm. The problem shows up when the iteration becomes large enough to max out the memory allocated for the stack.
Out of memory on the stack because the use of recursive algorithm with large dataset.
Rewrote the algorithm using non-recusive way.