Hi there,
I try running a simple rust actix app. It says the build is successful, but the deployment seems to fail, but I can’t find a reason. Here’s the log I found (from the deployment):
==> Downloaded 524MB in 10s. Extraction took 16s.
Jun 14 11:39:39 PM info: using existing install for ‘stable-x86_64-unknown-linux-gnu’
Jun 14 11:39:39 PM info: default toolchain set to ‘stable-x86_64-unknown-linux-gnu’
Jun 14 11:39:39 PM
Jun 14 11:39:39 PM stable-x86_64-unknown-linux-gnu unchanged - rustc 1.52.1 (9bc8c42bb 2021-05-09)
Jun 14 11:39:39 PM
Jun 14 11:39:39 PM ==> Running build command ‘cargo build --release’…
Jun 14 11:39:40 PM Compiling hb-data-bin v0.1.0 (/opt/render/project/src)
Jun 14 11:40:24 PM Finished release [optimized] target(s) in 44.94s
Jun 14 11:40:26 PM ==> Uploading build…
Jun 14 11:42:14 PM ==> Build successful
Jun 14 11:42:14 PM ==> Deploying…
Thanks for any advice!
It seems that your service failed to start. By default, Render uses the latest stable Rust toolchain, but you can specify a different toolchain. You can also try launching your program in the web shell of your service Dashboard and getting more information from messages and log in the console.
That was a good hint, in the shell I get this error:
error: no override and no default toolchain set
How that can be, if render automatically uses the latest toolchain?
Ok, so i manually installed toolchain ‘stable-x86_64-unknown-linux-gnu’ and started the app with ‘cargo run --release’. When it tries to build the crates, it exits with this error:
error: could not compile regex-syntax
Caused by:
process didn’t exit successfully: rustc --crate-name regex_syntax --edition=2018 /opt/render/project/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-syntax-0.6.25/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="unicode"' --cfg 'feature="unicode-age"' --cfg 'feature="unicode-bool"' --cfg 'feature="unicode-case"' --cfg 'feature="unicode-gencat"' --cfg 'feature="unicode-perl"' --cfg 'feature="unicode-script"' --cfg 'feature="unicode-segment"' -C metadata=d410e2ec87367328 -C extra-filename=-d410e2ec87367328 --out-dir /opt/render/project/src/target/release/deps -L dependency=/opt/render/project/src/target/release/deps --cap-lints allow
(signal: 9, SIGKILL: kill)
I got a little further using cargo run --release --jobs 1
Now it exists while compiling ‘syn’. Is it possible that the container just runs out of memory?
Could you update this command to start command
in the Setting tab of Dashboard and trigger another build? I will launch with 512MB as the starter plan.
Just launched it, this will take some time
Ok, same result: Build works, but deployment exists with “Exited with status 101”…
No I solved it: the --jobs 1 flag must be set for the build as well! Everything fine now, thx for the help!
best
Thomas
Glad to hear it’s working now