Goma and Reclient are remote build assistance that can perform compilation of files that you need to build, but do so on remote computers (workers), m

AMD, you infected my PC with zombies!

submited by
Style Pass
2025-01-08 00:30:06

Goma and Reclient are remote build assistance that can perform compilation of files that you need to build, but do so on remote computers (workers), managed by a backend server, resulting in a cache of build results that can be shared by multiple developers, reducing time spend building the source.

Goma was the original system implemented by the Chromium team for this, and we implemented our own system for that some years ago, although to get it working with our environment we had to do some patching of the server and the client that would be running on the developers’ machines.

Reclient is the replacement for Goma, and has some significant improvements in that it can communicate directly with the caching backend (called a CAS Server) which also distributes tasks to the workers. With Goma, the backend server facilitated that communication, meaning that there was an intermediate step that might cause a performance bottleneck. Reclient is also based on the communication protocol used for the Bazel build system, which actually combines what Reclient does with what the Ninja and the GN build tools does for Chromium (but just adding Reclient to the project is far less complicated than changing the whole system to Bazel).

Soon after we transitioned in early May, I started noticing some kind of memory leak, which seemed related to Reclient usage, more builds done caused more memory usage that was never released, and eventually more than half the memory of my PC was consumed, leading to me having to reboot the computer at least once or twice a week, which had previously only happened once a month (When we “celebrated” Patch Tuesday together with Microsoft; in fact, at about the time we transitioned to Reclient we had just held another such “celebration”, more about that later).

Leave a Comment