We’ve got a Differential revision changing a lot of files, with about 100 diffs made in it over two months. On Windows
arc patch now leads to a crash:
Fatal error: Out of memory (allocated 1009778688) (tried to allocate 200803049 bytes) in C:\Dev\arc\libphutil\src\future\http\BaseHTTPFuture.php on line 323
Running Arc with
--trace and monitoring its memory consumption shows it runs
differential.querydiffs and then slowly consumes memory at about 15MB/s up to ~400MB, and then crashes. From what I understand, it uses deprecated method
querydiffs returning not only all the diffs, but the actual full-text
git diff strings alongside them - apparently in our case it is not the best idea.
arc diff --update causes Arc to hang and then fail with
[cURL/28] (phabricator.local/api/differential.querydiffs) <CURLE_OPERATION_TIMEDOUT> The request took too long to complete.
querydiffs about this revision from Python bindings causes timeout too (although after ~10sec instead of ~3min on Windows). Executing it in Conduit Console on the web caused my Firefox to hang, bloat 2-3 GB up, and then simply display white page.
It seems that Arc should instead use