Vaultwarden Build Fails with out of memory error

Hello everyone,
for the life of me, I can't figure out what's causing this issue.
I'm trying to build security/vaultwarden on my vserver and the interesting part is that lang/rust itself has no issues building. security/vaultwarden built successfully before (version 1.30.5_2) on this host with this configuration.

Host: 13.4-RELEASE, amd64, 4 cpus, 10gb ram and swap
Poudriere Jail: 13.4-RELEASE
Poudriere build jail: 13.3-RELEASE

Command: /usr/local/bin/poudriere bulk -b "latest" -j "133Ramd64" -p "local" -f /usr/local/etc/poudriere.d/port-list.txt

My local ports tree is based on the quarterly branch of FreeBSD repos.

/usr/local/etc/poudriere.conf (removed all commented lines)
Code:
ZPOOL=zroot
ZROOTFS=/jailed/poudriere
FREEBSD_HOST=https://download.freebsd.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
POUDRIERE_DATA=${BASEFS}/data
USE_PORTLINT=no
USE_TMPFS=no
TMPFS_LIMIT=6
MAX_MEMORY=6
DISTFILES_CACHE=/var/cache/distfiles
CHECK_CHANGED_OPTIONS=verbose
CHECK_CHANGED_DEPS=yes
PKG_REPO_SIGNING_KEY=/usr/local/etc/ssl/keys/poudriere.key
CCACHE_DIR=/var/cache/ccache
NOLINUX=yes
ALLOW_MAKE_JOBS=no
ALLOW_MAKE_JOBS_PACKAGES="pkg py* hyperscan llvm* postgresql* rust"
URL_BASE=http://xxxx.de
PRIORITY_BOOST="llvm* rust"
Relevant log part (full log is attached):
Code:
rustc-LLVM ERROR: out of memory
Allocation failed
error: could not compile `vaultwarden` (bin "vaultwarden")

Caused by:
  process didn't exit successfully: `CARGO=/usr/local/bin/cargo CARGO_BIN_NAME=vaultwarden CARGO_CRATE_NAME=vaultwarden CARGO_MANIFEST_DIR=/wrkdirs/usr/ports/security/vaultwarden/work/vaultwarden-1.32.5 CARGO_PKG_AUTHORS='Daniel GarcÃa <dani-garcia@users.noreply.github.com>' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=AGPL-3.0-only CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=vaultwarden CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/dani-garcia/vaultwarden' CARGO_PKG_RUST_VERSION=1.80.0 CARGO_PKG_VERSION=1.0.0 CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps OUT_DIR=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/build/vaultwarden-becaea82f374e9c4/out /usr/local/bin/rustc --crate-name vaultwarden --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C panic=abort -C lto -C codegen-units=1 --deny=unused --deny=rust_2021_compatibility --deny=rust_2018_idioms --deny=refining_impl_trait --deny=let_underscore --deny=keyword_idents --deny=future_incompatible '--deny=clippy::zero_sized_map_values' '--deny=clippy::verbose_file_reads' --deny=variant_size_differences '--deny=clippy::unused_self' --deny=unused_qualifications --deny=unused_lifetimes --deny=unused_import_braces '--deny=clippy::unused_async' --forbid=unsafe_code --deny=unsafe-op-in-unsafe-fn '--deny=clippy::unnested_or_patterns' '--deny=clippy::unnecessary_self_imports' '--deny=clippy::unnecessary_join' --deny=trivial_numeric_casts --deny=trivial_casts '--warn=clippy::todo' '--deny=clippy::string_to_string' '--deny=clippy::string_add_assign' --deny=static-mut-refs --deny=single_use_lifetimes '--deny=clippy::option_option' --deny=noop_method_call --forbid=non_ascii_idents '--deny=clippy::needless_lifetimes' '--deny=clippy::needless_continue' '--deny=clippy::mem_forget' '--deny=clippy::match_wildcard_for_single_variants' '--deny=clippy::match_on_vec_items' '--deny=clippy::manual_string_new' '--deny=clippy::manual_instant_elapsed' '--deny=clippy::manual_assert' '--deny=clippy::macro_use_imports' '--deny=clippy::linkedlist' '--deny=clippy::iter_on_single_items' '--deny=clippy::iter_on_empty_collections' '--deny=clippy::inefficient_to_string' '--deny=clippy::float_cmp_const' '--deny=clippy::filter_map_next' '--deny=clippy::equatable_if_let' --deny=deprecated_in_future '--warn=clippy::dbg_macro' '--deny=clippy::clone_on_ref_ptr' '--deny=clippy::cast_lossless' '--deny=clippy::case_sensitive_file_extension_comparisons' --cfg 'feature="mysql"' --cfg 'feature="postgresql"' --cfg 'feature="sqlite"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("enable_mimalloc", "enable_syslog", "mysql", "postgresql", "query_logger", "sqlite", "unstable", "vendored_openssl"))' -C metadata=db1b9c07645c3dc9 -C extra-filename=-db1b9c07645c3dc9 --out-dir /wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps -C strip=debuginfo -L dependency=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps --extern argon2=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libargon2-49d45dc94555b731.rlib --extern bigdecimal=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libbigdecimal-aa690a63d34114a9.rlib --extern bytes=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libbytes-5a6e23d1deff8481.rlib --extern cached=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libcached-1f72e1d6bc43b996.rlib --extern chrono=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libchrono-5b3711ab252ebb6b.rlib --extern chrono_tz=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libchrono_tz-ebc0aa2deddfa1a9.rlib --extern cookie=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libcookie-556c0c153f1d96b8.rlib --extern cookie_store=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libcookie_store-0e9cf851e84bdb54.rlib --extern dashmap=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdashmap-38823f855cb635e2.rlib --extern data_encoding=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdata_encoding-d7206a04bb3c9b93.rlib --extern data_url=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdata_url-16ac0e6f6ac1e858.rlib --extern diesel=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdiesel-bf0c1ed5ed1b0fd1.rlib --extern diesel_migrations=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdiesel_migrations-6b038b68383b43c7.rlib --extern dotenvy=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libdotenvy-97c406339211119c.rlib --extern email_address=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libemail_address-cc585221a257aac8.rlib --extern fern=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libfern-afb40d0813131801.rlib --extern futures=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libfutures-31244ed75272fccc.rlib --extern governor=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libgovernor-a5cdcd36fbff0b36.rlib --extern grass_compiler=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libgrass_compiler-3d55d03d18cf9989.rlib --extern handlebars=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libhandlebars-4de50525eeef649c.rlib --extern hickory_resolver=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libhickory_resolver-430cd160b8fd8033.rlib --extern html5gum=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libhtml5gum-be39e1a4bc114e72.rlib --extern job_scheduler_ng=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libjob_scheduler_ng-d1ad39fada77a7a9.rlib --extern jsonwebtoken=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libjsonwebtoken-9233582de955e205.rlib --extern lettre=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/liblettre-12fe616d5103b571.rlib --extern libsqlite3_sys=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/liblibsqlite3_sys-3a8d4fb49e9ae329.rlib --extern log=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/liblog-aea71e2c1013c586.rlib --extern num_derive=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libnum_derive-46732e259ad1f42e.so --extern num_traits=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libnum_traits-eb93a1786d9caa05.rlib --extern once_cell=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libonce_cell-bc726bd5e7b6ada6.rlib --extern openssl=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libopenssl-45f2507ec38faa0b.rlib --extern paste=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libpaste-771534a4886f71ec.so --extern percent_encoding=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libpercent_encoding-cb1596afca47139d.rlib --extern pico_args=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libpico_args-64a01cc5de725634.rlib --extern rand=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/librand-7a9dec06842129dd.rlib --extern regex=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libregex-89ca4bb6ac5f8276.rlib --extern reqwest=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libreqwest-ef67a295ad6f2604.rlib --extern ring=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libring-40d300cd8102f9b3.rlib --extern rmpv=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/librmpv-8fadf8c364d1dbe8.rlib --extern rocket=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/librocket-629e69faca640830.rlib --extern rocket_ws=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/librocket_ws-88b3eb2e56f56dcd.rlib --extern rpassword=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/librpassword-21817c4e2ff4467c.rlib --extern semver=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libsemver-024dbd6de6fcdd03.rlib --extern serde=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libserde-4744d603c30d7650.rlib --extern serde_json=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libserde_json-b7cddb669e497b24.rlib --extern syslog=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libsyslog-2c3d6667040f441c.rlib --extern time=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libtime-893819c3738fbf60.rlib --extern tokio=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libtokio-149cc8e0d2cdd906.rlib --extern totp_lite=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libtotp_lite-a898754e1c2b8046.rlib --extern tracing=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libtracing-a409d764a9f9aeb0.rlib --extern url=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/liburl-2d2b30096f119c76.rlib --extern uuid=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libuuid-40ecf91b9580ffae.rlib --extern webauthn_rs=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libwebauthn_rs-d9dd37c28aad9345.rlib --extern which=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libwhich-e6b196a1e33391c3.rlib --extern yubico=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/deps/libyubico-31b46213dae34727.rlib -C link-arg=-L/usr/local/lib -C link-arg=-fstack-protector-strong -L native=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/build/libsqlite3-sys-e9696839ead4357b/out -L native=/usr/local/lib/mysql -L native=/usr/lib -L native=/usr/local/lib -L native=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/build/ring-97a5ba3b36897c9a/out -L native=/wrkdirs/usr/ports/security/vaultwarden/work/target/release/build/psm-2c66574b60e38abd/out -L native=/usr/lib --cfg sqlite --cfg mysql --cfg postgresql --check-cfg 'cfg(sqlite)' --check-cfg 'cfg(mysql)' --check-cfg 'cfg(postgresql)' --check-cfg 'cfg(query_logger)'` (signal: 6, SIGABRT: process abort signal)
*** Error code 101

Stop.
make: stopped in /usr/ports/security/vaultwarden
=>> Cleaning up wrkdir
===>  Cleaning for vaultwarden-1.32.5
build of security/vaultwarden | vaultwarden-1.32.5 ended at Wed Nov 27 10:09:12 UTC 2024
build time: 00:17:23
!!! build failure encountered !!!
 

Attachments

Turns out commenting out
Code:
MAX_MEMORY
actually helps and it doesn't even use all that much memory during the build. No clue why this helps, but it does.
 
Turns out commenting out
Code:
MAX_MEMORY
actually helps and it doesn't even use all that much memory during the build. No clue why this helps, but it does.

Ah.

Yes, that is the usual thing. There is no such thing as telling a program from the outside how much memory it should allocate - without killing it when it goes over. That's the only mechanism there short of stuffing the whole thing into a virtual machine.
 
Back
Top