I could not reproduce the problem, but your changes are good. I confirmed that by digging in WebKit archives. Olivier do you want to contribute the patch to codereview.qt-project.org or do you want me to do it?
> should it be trying to allocate 2 GB of ram?
Yes, it needs to reserve maximal possible VM memory space
> What about MAP_NORESERVE?
It is missing
> Are there supposed to be recovery options other than crashing?
No, there is a hard requirement
> I have virtual memory disabled, and apparently I don't have 2GB to spare otherwise.
Your system should not allocate that memory, it should only reserve the address space, it what it happens on my machine. But without MAP_NORESERVE it actually may do some checks that fails.