git_http bypassed the BlockingGit semaphore, spawning run_git_http directly via spawn_blocking with no concurrency cap. A burst of clone/fetch/push requests against /git/* could fork unbounded git upload-pack/receive-pack subprocesses, which is what OOM-killed Titan (hundreds of git/git-upload-pack processes under one session exhausted 16GB RAM + 32GB swap, then the OOM killer took out systemd itself, requiring a hard reboot).
Fix: route git_http's blocking work through state.blocking_git like every other git-invoking endpoint, capping it at MAX_BLOCKING_GIT (4).