Rust build fails on shared runner, works everywhere else
I'm not sure if this should be filed here, but the blog post on the new Windows shared runners says I should file it here.
I have a project that compiles on:
- A local Windows VM with 8 GB of RAM
- A Windows VM I launched on GCP, installed necessary tooling into, installed the GitLab runner, and connected to my project
It fails to build on shared VMs. The error I get is:
Compiling gdnative-bindings v0.8.0
memory allocation of 32374784 bytes failed
error: could not compile `gdnative-bindings`.
Caused by:
process didn't exit successfully: `rustc --crate-name gdnative_bindings --edition=2018 C:\Users\gitlab_runner\.cargo\registry\src\github.com-1ecc6299db9ec823\gdnative-bindings-0.8.0\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C metadata=46cbf32cf0256a74 -C extra-filename=-46cbf32cf0256a74 --out-dir C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps --target x86_64-pc-windows-msvc -L dependency=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps -L dependency=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\release\deps --extern bitflags=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libbitflags-90ecca2af791642d.rmeta --extern gdnative_core=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libgdnative_core-a6d75391be0ce9e4.rmeta --extern gdnative_sys=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libgdnative_sys-ce7daf82d70ee84c.rmeta --extern libc=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\liblibc-10b8e6738dc5aeab.rmeta --cap-lints allow` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
ERROR: Job failed: exit status 1
I'm a Linux user with little knowledge of Windows server maintenance, so I'd really rather build this open source project on your shared Windows runners, even if I have to pay for it at some point. But I don't know why my builds fail on your shared runners but work everywhere else, including the private group runner I set up a while back. Granted, I installed my own tooling on the group runner and am using Choco in the build script, but it gets the same versions. My suspicion was that I was running out of RAM, but again, my local VM has 8G and finishes builds just fine, and I think but am not certain that my GCP VM only had 4G.
Thanks for any help.