That would be the cause - since MCServer is compiled as a 32-bit process, it runs out of memory at 2 GiB. So what you're getting is an out-of-memory.
Now, the question is, why?
Can you reproduce and then when it hits the debugger, check the cFloodyFluidSimulator::m_TotalBlocks value? You'll probably have to jump through hoops to get it, I suppose something like cRoot::Get()->m_pDefaultWorld->m_WaterSimulator as a watch expression would give you access to it. Normally for freshly generated worlds it can go as high as 200k, but if it's much more, then something's probably wrong.
Also, I think it'd be helpful in this case if you gave us the entire world folder zipped up, and your player's config file ($/MCServer/players/<playername>.json ) so that we can replicate this.
Now, the question is, why?
Can you reproduce and then when it hits the debugger, check the cFloodyFluidSimulator::m_TotalBlocks value? You'll probably have to jump through hoops to get it, I suppose something like cRoot::Get()->m_pDefaultWorld->m_WaterSimulator as a watch expression would give you access to it. Normally for freshly generated worlds it can go as high as 200k, but if it's much more, then something's probably wrong.
Also, I think it'd be helpful in this case if you gave us the entire world folder zipped up, and your player's config file ($/MCServer/players/<playername>.json ) so that we can replicate this.