tarpaulin icon indicating copy to clipboard operation
tarpaulin copied to clipboard

Tarpaulin fails only in CI "Error: main: linking with `clang` failed: exit status: 254"

Open jdroenner opened this issue 2 years ago • 0 comments

Describe the bug We have a Github repository with code coverage run through tarpaulin. A new PR results in a failing CI with the following message: "Jun 03 10:19:23.427 ERROR cargo_tarpaulin: Failed to compile tests! Error: main: linking with clang failed: exit status: 254"

We can reproduce this only in the Github CI. On our local machines everything works as it should. Also the "cargo test" tasks still work fine on the Github CI.

The issue appears in this commit where we use a combination of two macros to generate implementations of generic code for enum variants.

  • how can we identify the problem which causes tarpaulin to fail?
  • Is there a known issue with (lots of) generated code?
  • is there a known issue with Github CI runners?

To Reproduce We can only reproduce the issue on the Github CI. Tarpaulin prints:

Jun 03 10:18:51.120 DEBUG cargo_tarpaulin::cargo: Linker paths: ["/usr/lib", "/home/runner/work/geoengine/geoengine/target/debug/build/ring-8808b2ba2f719d9d/out", "/usr/lib/x86_64-linux-gnu", "\"/usr/lib/x86_64-linux-gnu\"", "/home/runner/work/geoengine/geoengine/target/debug/build/bzip2-sys-7fcda383f9f4c654/out/lib", "/home/runner/work/geoengine/geoengine/target/debug/build/zstd-sys-66966ca69dbc6a01/out", "/home/runner/work/geoengine/geoengine/target/debug/build/libgit2-sys-f8fed45e4998bdad/out/build"]
error: could not compile `geoengine-services` due to 2 previous errors

Caused by:
  process didn't exit successfully: `CARGO=/home/runner/.rustup/toolchains/nightly-2022-05-19-x86_64-unknown-linux-gnu/bin/cargo CARGO_BIN_NAME=main CARGO_CRATE_NAME=main CARGO_MANIFEST_DIR=/home/runner/work/geoengine/geoengine/services CARGO_PKG_AUTHORS='Christian Beilschmidt <[email protected]>:Johannes Drönner <[email protected]>:Michael Mattig <[email protected]>' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=geoengine-services CARGO_PKG_REPOSITORY='' CARGO_PKG_VERSION=0.7.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=7 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH='/home/runner/work/geoengine/geoengine/target/debug/deps:/home/runner/.rustup/toolchains/nightly-2022-05-19-x86_64-unknown-linux-gnu/lib:/home/runner/.rustup/toolchains/nightly-2022-05-19-x86_64-unknown-linux-gnu/lib:/home/runner/.rustup/toolchains/nightly-2022-05-19-x86_64-unknown-linux-gnu/lib' OUT_DIR=/home/runner/work/geoengine/geoengine/target/debug/build/geoengine-services-e0c32b375726f435/out VERGEN_BUILD_DATE=2022-06-03 VERGEN_BUILD_SEMVER=0.7.0 VERGEN_CARGO_FEATURES=bb8_postgres,ebv,nature40,nfdi,odm,postgres,postgres_types,pro,quick_xml,scienceobjectsdb_rust_api,xml VERGEN_CARGO_PROFILE=debug VERGEN_CARGO_TARGET_TRIPLE=x86_64-unknown-linux-gnu VERGEN_GIT_BRANCH='detached HEAD' VERGEN_GIT_COMMIT_AUTHOR_EMAIL='[email protected]' VERGEN_GIT_COMMIT_AUTHOR_NAME='Johannes Drönner' VERGEN_GIT_COMMIT_COUNT=1 VERGEN_GIT_COMMIT_TIMESTAMP='2022-06-03T09:56:39Z' VERGEN_GIT_SEMVER=0.7.0 VERGEN_GIT_SHA=08edb9bdeaa263535e9074988f958fa174e255b1 VERGEN_RUSTC_CHANNEL=nightly VERGEN_RUSTC_COMMIT_DATE=2022-05-18 VERGEN_RUSTC_COMMIT_HASH=cd282d7f75da9080fda0f1740a729516e7fbec68 VERGEN_RUSTC_HOST_TRIPLE=x86_64-unknown-linux-gnu VERGEN_RUSTC_LLVM_VERSION=14.0 VERGEN_RUSTC_SEMVER=1.63.0-nightly VERGEN_SYSINFO_CPU_BRAND='Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz' VERGEN_SYSINFO_CPU_CORE_COUNT=2 VERGEN_SYSINFO_CPU_FREQUENCY=2593 VERGEN_SYSINFO_CPU_NAME=cpu0,cpu1 VERGEN_SYSINFO_CPU_VENDOR=GenuineIntel VERGEN_SYSINFO_NAME=Ubuntu VERGEN_SYSINFO_OS_VERSION='Linux 20.04 Ubuntu' VERGEN_SYSINFO_TOTAL_MEMORY='7 GB' VERGEN_SYSINFO_USER=runner rustc --crate-name main --edition=2021 services/src/bin/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test --cfg 'feature="bb8-postgres"' --cfg 'feature="ebv"' --cfg 'feature="nature40"' --cfg 'feature="nfdi"' --cfg 'feature="odm"' --cfg 'feature="postgres"' --cfg 'feature="postgres-types"' --cfg 'feature="pro"' --cfg 'feature="quick-xml"' --cfg 'feature="scienceobjectsdb_rust_api"' --cfg 'feature="xml"' -C metadata=e2ac8b621f9da563 -C extra-filename=-e2ac8b621f9da563 --out-dir /home/runner/work/geoengine/geoengine/target/debug/deps -C linker=clang -C incremental=/home/runner/work/geoengine/geoengine/target/debug/incremental -L dependency=/home/runner/work/geoengine/geoengine/target/debug/deps --extern actix_files=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_files-cd8bef8b55bbd47c.rlib --extern actix_http=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_http-a80103b9fd3447fd.rlib --extern actix_multipart=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_multipart-5a4384aa2c42e2e7.rlib --extern actix_rt=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_rt-d6cbb9cf80a0eda2.rlib --extern actix_web=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_web-1bba02bf9de63636.rlib --extern actix_web_httpauth=/home/runner/work/geoengine/geoengine/target/debug/deps/libactix_web_httpauth-49ef8d8417ce7947.rlib --extern async_trait=/home/runner/work/geoengine/geoengine/target/debug/deps/libasync_trait-cd65977b2bbffdf9.so --extern base64=/home/runner/work/geoengine/geoengine/target/debug/deps/libbase64-4563507a4eb0b4b2.rlib --extern bb8_postgres=/home/runner/work/geoengine/geoengine/target/debug/deps/libbb8_postgres-41f264e48ae7895a.rlib --extern bytes=/home/runner/work/geoengine/geoengine/target/debug/deps/libbytes-5e8424a0f7103369.rlib --extern chrono=/home/runner/work/geoengine/geoengine/target/debug/deps/libchrono-a5b92e9df7a75eb7.rlib --extern config=/home/runner/work/geoengine/geoengine/target/debug/deps/libconfig-66dd5e6aaa77de8e.rlib --extern flexi_logger=/home/runner/work/geoengine/geoengine/target/debug/deps/libflexi_logger-b81442c94da0552c.rlib --extern float_cmp=/home/runner/work/geoengine/geoengine/target/debug/deps/libfloat_cmp-9aab92a91b5c248a.rlib --extern futures=/home/runner/work/geoengine/geoengine/target/debug/deps/libfutures-e50a72fddc8dee0e.rlib --extern futures_util=/home/runner/work/geoengine/geoengine/target/debug/deps/libfutures_util-ca0b1e3f8a628354.rlib --extern gdal=/home/runner/work/geoengine/geoengine/target/debug/deps/libgdal-347181d445848ce6.rlib --extern gdal_sys=/home/runner/work/geoengine/geoengine/target/debug/deps/libgdal_sys-f2a9a7717cc98003.rlib --extern geo=/home/runner/work/geoengine/geoengine/target/debug/deps/libgeo-ee38733f51da476d.rlib --extern geoengine_datatypes=/home/runner/work/geoengine/geoengine/target/debug/deps/libgeoengine_datatypes-86acab43bb05d4ca.rlib --extern geoengine_operators=/home/runner/work/geoengine/geoengine/target/debug/deps/libgeoengine_operators-469561e09564b47b.rlib --extern geoengine_services=/home/runner/work/geoengine/geoengine/target/debug/deps/libgeoengine_services-702b03a21a821a3a.rlib --extern geojson=/home/runner/work/geoengine/geoengine/target/debug/deps/libgeojson-946e1ee5d7a15161.rlib --extern httptest=/home/runner/work/geoengine/geoengine/target/debug/deps/libhttptest-569da6d69961f7ab.rlib --extern image=/home/runner/work/geoengine/geoengine/target/debug/deps/libimage-e5d2a46a768704b0.rlib --extern lazy_static=/home/runner/work/geoengine/geoengine/target/debug/deps/liblazy_static-b33cd6b8ee13db74.rlib --extern log=/home/runner/work/geoengine/geoengine/target/debug/deps/liblog-2aea261907451eb5.rlib --extern mime=/home/runner/work/geoengine/geoengine/target/debug/deps/libmime-f9513972171bf326.rlib --extern num_traits=/home/runner/work/geoengine/geoengine/target/debug/deps/libnum_traits-3f0549f1f4c73647.rlib --extern paste=/home/runner/work/geoengine/geoengine/target/debug/deps/libpaste-85067c7f435fa569.so --extern postgres_types=/home/runner/work/geoengine/geoengine/target/debug/deps/libpostgres_types-9fd28408b856bfe3.rlib --extern proj=/home/runner/work/geoengine/geoengine/target/debug/deps/libproj-d3c6544cb3f931ad.rlib --extern proj_sys=/home/runner/work/geoengine/geoengine/target/debug/deps/libproj_sys-1eeabbc47258d592.rlib --extern pwhash=/home/runner/work/geoengine/geoengine/target/debug/deps/libpwhash-7e6b6d701d270bb4.rlib --extern quick_xml=/home/runner/work/geoengine/geoengine/target/debug/deps/libquick_xml-eb32990e49960015.rlib --extern rand=/home/runner/work/geoengine/geoengine/target/debug/deps/librand-cfee81c321b51f10.rlib --extern rayon=/home/runner/work/geoengine/geoengine/target/debug/deps/librayon-a2f3d3439e0b5ac7.rlib --extern regex=/home/runner/work/geoengine/geoengine/target/debug/deps/libregex-3dbd3e4c3a432ee7.rlib --extern reqwest=/home/runner/work/geoengine/geoengine/target/debug/deps/libreqwest-ea1f5a9baebaeda4.rlib --extern scienceobjectsdb_rust_api=/home/runner/work/geoengine/geoengine/target/debug/deps/libscienceobjectsdb_rust_api-f0b5bde62c660271.rlib --extern serde=/home/runner/work/geoengine/geoengine/target/debug/deps/libserde-47e412f651068b1d.rlib --extern serde_json=/home/runner/work/geoengine/geoengine/target/debug/deps/libserde_json-15016a1ae37a60c1.rlib --extern serde_urlencoded=/home/runner/work/geoengine/geoengine/target/debug/deps/libserde_urlencoded-c982b5ef5295af09.rlib --extern serde_with=/home/runner/work/geoengine/geoengine/target/debug/deps/libserde_with-4597a095116c375d.rlib --extern snafu=/home/runner/work/geoengine/geoengine/target/debug/deps/libsnafu-b62b45d31058fb9e.rlib --extern strum=/home/runner/work/geoengine/geoengine/target/debug/deps/libstrum-353b1b12b472dd2c.rlib --extern tempfile=/home/runner/work/geoengine/geoengine/target/debug/deps/libtempfile-17e995d1e5a31c89.rlib --extern time=/home/runner/work/geoengine/geoengine/target/debug/deps/libtime-bc65334e18094a06.rlib --extern tokio=/home/runner/work/geoengine/geoengine/target/debug/deps/libtokio-fbd3a8224ac05050.rlib --extern tokio_util=/home/runner/work/geoengine/geoengine/target/debug/deps/libtokio_util-71881b52c65b60a7.rlib --extern tonic=/home/runner/work/geoengine/geoengine/target/debug/deps/libtonic-f1511f6a8b2c68eb.rlib --extern tracing=/home/runner/work/geoengine/geoengine/target/debug/deps/libtracing-ec5e63ebb1ba3f48.rlib --extern tracing_actix_web=/home/runner/work/geoengine/geoengine/target/debug/deps/libtracing_actix_web-e375882e644b5588.rlib --extern tracing_subscriber=/home/runner/work/geoengine/geoengine/target/debug/deps/libtracing_subscriber-32c33d0e174727e9.rlib --extern typetag=/home/runner/work/geoengine/geoengine/target/debug/deps/libtypetag-fe272a2e0e65df9e.rlib --extern url=/home/runner/work/geoengine/geoengine/target/debug/deps/liburl-b60363ace5c2493d.rlib --extern uuid=/home/runner/work/geoengine/geoengine/target/debug/deps/libuuid-a24a7debbb2ee64d.rlib --extern walkdir=/home/runner/work/geoengine/geoengine/target/debug/deps/libwalkdir-85c3caa7668e091f.rlib --extern wiremock_grpc=/home/runner/work/geoengine/geoengine/target/debug/deps/libwiremock_grpc-07c2147f7a5bbaf1.rlib --extern xml=/home/runner/work/geoengine/geoengine/target/debug/deps/libxml-26b655784b382005.rlib --extern zip=/home/runner/work/geoengine/geoengine/target/debug/deps/libzip-2ec5a4363e13ccfc.rlib -Cdebuginfo=2 --cfg=tarpaulin -Clink-dead-code -L native=/home/runner/work/geoengine/geoengine/target/debug/build/zstd-sys-66966ca69dbc6a01/out -L native=/usr/lib -L native=/usr/lib/x86_64-linux-gnu -L 'native="/usr/lib/x86_64-linux-gnu"' -L native=/home/runner/work/geoengine/geoengine/target/debug/build/ring-8808b2ba2f719d9d/out -L native=/home/runner/work/geoengine/geoengine/target/debug/build/bzip2-sys-7fcda383f9f4c654/out/lib` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
Jun 03 10:19:23.427 ERROR cargo_tarpaulin: Failed to compile tests! Error: main: linking with `clang` failed: exit status: 254
Jun 03 10:19:23.428  INFO cargo_tarpaulin::event_log: Serializing tarpaulin debug log to tarpaulin_2022-06-03T10:19:23+00:00.json
Error: "Failed to compile tests! Error: main: linking with `clang` failed: exit status: 254"
Error: Process completed with exit code 1.

For some (unknown) reason it worked once when we changed the tarpaulin timeout from 120 to 240. We tried a larger (and the same) timeout but the CI task keeps failing.

Expected behavior It would be very helpfull to see the previous errors or another indication what went wrong.

jdroenner avatar Jun 03 '22 13:06 jdroenner