taiki-e / cargo-llvm-cov

Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).
Apache License 2.0
933 stars 57 forks source link

Generation fails due to "Truncated coverage data" #134

Closed dnaka91 closed 2 years ago

dnaka91 commented 2 years ago

Have been using cargo-llvm-cov successfully in the past several times, and it just worked great. But recently it always fails with the error Failed to load coverage: Truncated coverage data.

Could this be some change that happened in the llvm-tools-preview package on nightly?

OS: MacOS Project: dnaka91/obws Rustc Version: rustc 1.60.0-nightly (f624427f8 2022-02-06)

This is the full error output:

error: target/llvm-cov-target/debug/build/anyhow-0deaec97327e4671/build-script-build, target/llvm-cov-target/debug/build/anyhow-0deaec97327e4671/build_script_build-0deaec97327e4671, target/llvm-cov-target/debug/build/anyhow-11757e37879e3e70/build-script-build, target/llvm-cov-target/debug/build/anyhow-11757e37879e3e70/build_script_build-11757e37879e3e70, target/llvm-cov-target/debug/build/futures-core-3a9d5930b2a841b2/build-script-build, target/llvm-cov-target/debug/build/futures-core-3a9d5930b2a841b2/build_script_build-3a9d5930b2a841b2, target/llvm-cov-target/debug/build/futures-core-3ddbaa07089d082d/build-script-build, target/llvm-cov-target/debug/build/futures-core-3ddbaa07089d082d/build_script_build-3ddbaa07089d082d, target/llvm-cov-target/debug/build/futures-task-109a30ae9b891e7b/build-script-build, target/llvm-cov-target/debug/build/futures-task-109a30ae9b891e7b/build_script_build-109a30ae9b891e7b, target/llvm-cov-target/debug/build/futures-task-1ab505591ec822c2/build-script-build, target/llvm-cov-target/debug/build/futures-task-1ab505591ec822c2/build_script_build-1ab505591ec822c2, target/llvm-cov-target/debug/build/futures-util-8faf909b5fb0152b/build-script-build, target/llvm-cov-target/debug/build/futures-util-8faf909b5fb0152b/build_script_build-8faf909b5fb0152b, target/llvm-cov-target/debug/build/futures-util-d399d88abf0e45cb/build-script-build, target/llvm-cov-target/debug/build/futures-util-d399d88abf0e45cb/build_script_build-d399d88abf0e45cb, target/llvm-cov-target/debug/build/generic-array-f6893c66a2b6ed4e/build-script-build, target/llvm-cov-target/debug/build/generic-array-f6893c66a2b6ed4e/build_script_build-f6893c66a2b6ed4e, target/llvm-cov-target/debug/build/httparse-c875addf0a93043d/build-script-build, target/llvm-cov-target/debug/build/httparse-c875addf0a93043d/build_script_build-c875addf0a93043d, target/llvm-cov-target/debug/build/libc-64dc221bb1a997ba/build-script-build, target/llvm-cov-target/debug/build/libc-64dc221bb1a997ba/build_script_build-64dc221bb1a997ba, target/llvm-cov-target/debug/build/libc-ab5a7f10f2043aab/build-script-build, target/llvm-cov-target/debug/build/libc-ab5a7f10f2043aab/build_script_build-ab5a7f10f2043aab, target/llvm-cov-target/debug/build/log-7aeff1f4899b7e98/build-script-build, target/llvm-cov-target/debug/build/log-7aeff1f4899b7e98/build_script_build-7aeff1f4899b7e98, target/llvm-cov-target/debug/build/memchr-befa59ac0d13a638/build-script-build, target/llvm-cov-target/debug/build/memchr-befa59ac0d13a638/build_script_build-befa59ac0d13a638, target/llvm-cov-target/debug/build/proc-macro2-12a08702f33cb4fd/build-script-build, target/llvm-cov-target/debug/build/proc-macro2-12a08702f33cb4fd/build_script_build-12a08702f33cb4fd, target/llvm-cov-target/debug/build/ring-4426400e214b13a0/build-script-build, target/llvm-cov-target/debug/build/ring-4426400e214b13a0/build_script_build-4426400e214b13a0, target/llvm-cov-target/debug/build/rustversion-0fcd536110f8cbf5/build-script-build, target/llvm-cov-target/debug/build/rustversion-0fcd536110f8cbf5/build_script_build-0fcd536110f8cbf5, target/llvm-cov-target/debug/build/semver-da5111e14fb7e53c/build-script-build, target/llvm-cov-target/debug/build/semver-da5111e14fb7e53c/build_script_build-da5111e14fb7e53c, target/llvm-cov-target/debug/build/semver-f147641bca290af3/build-script-build, target/llvm-cov-target/debug/build/semver-f147641bca290af3/build_script_build-f147641bca290af3, target/llvm-cov-target/debug/build/serde-7c630a0a879b3265/build-script-build, target/llvm-cov-target/debug/build/serde-7c630a0a879b3265/build_script_build-7c630a0a879b3265, target/llvm-cov-target/debug/build/serde-f9a70554b5c2b166/build-script-build, target/llvm-cov-target/debug/build/serde-f9a70554b5c2b166/build_script_build-f9a70554b5c2b166, target/llvm-cov-target/debug/build/serde_derive-2fbf478fecf7f47c/build-script-build, target/llvm-cov-target/debug/build/serde_derive-2fbf478fecf7f47c/build_script_build-2fbf478fecf7f47c, target/llvm-cov-target/debug/build/serde_derive-652ad15766278389/build-script-build, target/llvm-cov-target/debug/build/serde_derive-652ad15766278389/build_script_build-652ad15766278389, target/llvm-cov-target/debug/build/serde_json-966e673159dffa2a/build-script-build, target/llvm-cov-target/debug/build/serde_json-966e673159dffa2a/build_script_build-966e673159dffa2a, target/llvm-cov-target/debug/build/serde_json-f11470691e35515d/build-script-build, target/llvm-cov-target/debug/build/serde_json-f11470691e35515d/build_script_build-f11470691e35515d, target/llvm-cov-target/debug/build/serde_test-e21ca3889a7d1d00/build-script-build, target/llvm-cov-target/debug/build/serde_test-e21ca3889a7d1d00/build_script_build-e21ca3889a7d1d00, target/llvm-cov-target/debug/build/syn-00528ab57a5b399e/build-script-build, target/llvm-cov-target/debug/build/syn-00528ab57a5b399e/build_script_build-00528ab57a5b399e, target/llvm-cov-target/debug/build/syn-0b3cfe976b16a760/build-script-build, target/llvm-cov-target/debug/build/syn-0b3cfe976b16a760/build_script_build-0b3cfe976b16a760, target/llvm-cov-target/debug/build/typenum-b8ba57cb29bde287/build-script-main, target/llvm-cov-target/debug/build/typenum-b8ba57cb29bde287/build_script_main-b8ba57cb29bde287, target/llvm-cov-target/debug/deps/integration-3880f5b35cdcdbb2, target/llvm-cov-target/debug/deps/libasync_stream_impl-7bfb5b31af2a1a31.dylib, target/llvm-cov-target/debug/deps/libasync_stream_impl-8518d962c7f54acb.dylib, target/llvm-cov-target/debug/deps/libdarling_macro-7dc4982565f38e09.dylib, target/llvm-cov-target/debug/deps/libdarling_macro-8a8ebc326d2939cb.dylib, target/llvm-cov-target/debug/deps/libfutures_macro-7f174fc4124dbe57.dylib, target/llvm-cov-target/debug/deps/libfutures_macro-c652c3db5803fbea.dylib, target/llvm-cov-target/debug/deps/librustversion-66ee14ca3f11122e.dylib, target/llvm-cov-target/debug/deps/libserde_derive-1eed428c3ed71456.dylib, target/llvm-cov-target/debug/deps/libserde_derive-520e96e0545235ad.dylib, target/llvm-cov-target/debug/deps/libserde_repr-e55860a3ca1bce92.dylib, target/llvm-cov-target/debug/deps/libserde_repr-feaf066ef92ebba6.dylib, target/llvm-cov-target/debug/deps/libserde_with_macros-7a6f60b3f82f2a2d.dylib, target/llvm-cov-target/debug/deps/libserde_with_macros-cea2c2d0e3cbe043.dylib, target/llvm-cov-target/debug/deps/libthiserror_impl-252e3bf731fff8d2.dylib, target/llvm-cov-target/debug/deps/libthiserror_impl-b3037b7568fb3134.dylib, target/llvm-cov-target/debug/deps/libtokio_macros-46e476d1c00fb151.dylib, target/llvm-cov-target/debug/deps/libtokio_macros-ed658ef8ab058d52.dylib, target/llvm-cov-target/debug/deps/libtracing_attributes-9f400b99e42d2fe4.dylib, target/llvm-cov-target/debug/deps/libtracing_attributes-bfc2d791dbec8257.dylib, target/llvm-cov-target/debug/deps/obws-4b642cab3c4c801b: Failed to load coverage: Truncated coverage data
error: failed to generate report: process didn't exit successfully: `/Users/dnaka91/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/bin/llvm-cov report -instr-profile=/Users/dnaka91/Projects/public/obws/target/llvm-cov-target/obws.profdata -object target/llvm-cov-target/debug/build/anyhow-0deaec97327e4671/build-script-build -object target/llvm-cov-target/debug/build/anyhow-0deaec97327e4671/build_script_build-0deaec97327e4671 -object target/llvm-cov-target/debug/build/anyhow-11757e37879e3e70/build-script-build -object target/llvm-cov-target/debug/build/anyhow-11757e37879e3e70/build_script_build-11757e37879e3e70 -object target/llvm-cov-target/debug/build/futures-core-3a9d5930b2a841b2/build-script-build -object target/llvm-cov-target/debug/build/futures-core-3a9d5930b2a841b2/build_script_build-3a9d5930b2a841b2 -object target/llvm-cov-target/debug/build/futures-core-3ddbaa07089d082d/build-script-build -object target/llvm-cov-target/debug/build/futures-core-3ddbaa07089d082d/build_script_build-3ddbaa07089d082d -object target/llvm-cov-target/debug/build/futures-task-109a30ae9b891e7b/build-script-build -object target/llvm-cov-target/debug/build/futures-task-109a30ae9b891e7b/build_script_build-109a30ae9b891e7b -object target/llvm-cov-target/debug/build/futures-task-1ab505591ec822c2/build-script-build -object target/llvm-cov-target/debug/build/futures-task-1ab505591ec822c2/build_script_build-1ab505591ec822c2 -object target/llvm-cov-target/debug/build/futures-util-8faf909b5fb0152b/build-script-build -object target/llvm-cov-target/debug/build/futures-util-8faf909b5fb0152b/build_script_build-8faf909b5fb0152b -object target/llvm-cov-target/debug/build/futures-util-d399d88abf0e45cb/build-script-build -object target/llvm-cov-target/debug/build/futures-util-d399d88abf0e45cb/build_script_build-d399d88abf0e45cb -object target/llvm-cov-target/debug/build/generic-array-f6893c66a2b6ed4e/build-script-build -object target/llvm-cov-target/debug/build/generic-array-f6893c66a2b6ed4e/build_script_build-f6893c66a2b6ed4e -object target/llvm-cov-target/debug/build/httparse-c875addf0a93043d/build-script-build -object target/llvm-cov-target/debug/build/httparse-c875addf0a93043d/build_script_build-c875addf0a93043d -object target/llvm-cov-target/debug/build/libc-64dc221bb1a997ba/build-script-build -object target/llvm-cov-target/debug/build/libc-64dc221bb1a997ba/build_script_build-64dc221bb1a997ba -object target/llvm-cov-target/debug/build/libc-ab5a7f10f2043aab/build-script-build -object target/llvm-cov-target/debug/build/libc-ab5a7f10f2043aab/build_script_build-ab5a7f10f2043aab -object target/llvm-cov-target/debug/build/log-7aeff1f4899b7e98/build-script-build -object target/llvm-cov-target/debug/build/log-7aeff1f4899b7e98/build_script_build-7aeff1f4899b7e98 -object target/llvm-cov-target/debug/build/memchr-befa59ac0d13a638/build-script-build -object target/llvm-cov-target/debug/build/memchr-befa59ac0d13a638/build_script_build-befa59ac0d13a638 -object target/llvm-cov-target/debug/build/proc-macro2-12a08702f33cb4fd/build-script-build -object target/llvm-cov-target/debug/build/proc-macro2-12a08702f33cb4fd/build_script_build-12a08702f33cb4fd -object target/llvm-cov-target/debug/build/ring-4426400e214b13a0/build-script-build -object target/llvm-cov-target/debug/build/ring-4426400e214b13a0/build_script_build-4426400e214b13a0 -object target/llvm-cov-target/debug/build/rustversion-0fcd536110f8cbf5/build-script-build -object target/llvm-cov-target/debug/build/rustversion-0fcd536110f8cbf5/build_script_build-0fcd536110f8cbf5 -object target/llvm-cov-target/debug/build/semver-da5111e14fb7e53c/build-script-build -object target/llvm-cov-target/debug/build/semver-da5111e14fb7e53c/build_script_build-da5111e14fb7e53c -object target/llvm-cov-target/debug/build/semver-f147641bca290af3/build-script-build -object target/llvm-cov-target/debug/build/semver-f147641bca290af3/build_script_build-f147641bca290af3 -object target/llvm-cov-target/debug/build/serde-7c630a0a879b3265/build-script-build -object target/llvm-cov-target/debug/build/serde-7c630a0a879b3265/build_script_build-7c630a0a879b3265 -object target/llvm-cov-target/debug/build/serde-f9a70554b5c2b166/build-script-build -object target/llvm-cov-target/debug/build/serde-f9a70554b5c2b166/build_script_build-f9a70554b5c2b166 -object target/llvm-cov-target/debug/build/serde_derive-2fbf478fecf7f47c/build-script-build -object target/llvm-cov-target/debug/build/serde_derive-2fbf478fecf7f47c/build_script_build-2fbf478fecf7f47c -object target/llvm-cov-target/debug/build/serde_derive-652ad15766278389/build-script-build -object target/llvm-cov-target/debug/build/serde_derive-652ad15766278389/build_script_build-652ad15766278389 -object target/llvm-cov-target/debug/build/serde_json-966e673159dffa2a/build-script-build -object target/llvm-cov-target/debug/build/serde_json-966e673159dffa2a/build_script_build-966e673159dffa2a -object target/llvm-cov-target/debug/build/serde_json-f11470691e35515d/build-script-build -object target/llvm-cov-target/debug/build/serde_json-f11470691e35515d/build_script_build-f11470691e35515d -object target/llvm-cov-target/debug/build/serde_test-e21ca3889a7d1d00/build-script-build -object target/llvm-cov-target/debug/build/serde_test-e21ca3889a7d1d00/build_script_build-e21ca3889a7d1d00 -object target/llvm-cov-target/debug/build/syn-00528ab57a5b399e/build-script-build -object target/llvm-cov-target/debug/build/syn-00528ab57a5b399e/build_script_build-00528ab57a5b399e -object target/llvm-cov-target/debug/build/syn-0b3cfe976b16a760/build-script-build -object target/llvm-cov-target/debug/build/syn-0b3cfe976b16a760/build_script_build-0b3cfe976b16a760 -object target/llvm-cov-target/debug/build/typenum-b8ba57cb29bde287/build-script-main -object target/llvm-cov-target/debug/build/typenum-b8ba57cb29bde287/build_script_main-b8ba57cb29bde287 -object target/llvm-cov-target/debug/deps/integration-3880f5b35cdcdbb2 -object target/llvm-cov-target/debug/deps/libasync_stream_impl-7bfb5b31af2a1a31.dylib -object target/llvm-cov-target/debug/deps/libasync_stream_impl-8518d962c7f54acb.dylib -object target/llvm-cov-target/debug/deps/libdarling_macro-7dc4982565f38e09.dylib -object target/llvm-cov-target/debug/deps/libdarling_macro-8a8ebc326d2939cb.dylib -object target/llvm-cov-target/debug/deps/libfutures_macro-7f174fc4124dbe57.dylib -object target/llvm-cov-target/debug/deps/libfutures_macro-c652c3db5803fbea.dylib -object target/llvm-cov-target/debug/deps/librustversion-66ee14ca3f11122e.dylib -object target/llvm-cov-target/debug/deps/libserde_derive-1eed428c3ed71456.dylib -object target/llvm-cov-target/debug/deps/libserde_derive-520e96e0545235ad.dylib -object target/llvm-cov-target/debug/deps/libserde_repr-e55860a3ca1bce92.dylib -object target/llvm-cov-target/debug/deps/libserde_repr-feaf066ef92ebba6.dylib -object target/llvm-cov-target/debug/deps/libserde_with_macros-7a6f60b3f82f2a2d.dylib -object target/llvm-cov-target/debug/deps/libserde_with_macros-cea2c2d0e3cbe043.dylib -object target/llvm-cov-target/debug/deps/libthiserror_impl-252e3bf731fff8d2.dylib -object target/llvm-cov-target/debug/deps/libthiserror_impl-b3037b7568fb3134.dylib -object target/llvm-cov-target/debug/deps/libtokio_macros-46e476d1c00fb151.dylib -object target/llvm-cov-target/debug/deps/libtokio_macros-ed658ef8ab058d52.dylib -object target/llvm-cov-target/debug/deps/libtracing_attributes-9f400b99e42d2fe4.dylib -object target/llvm-cov-target/debug/deps/libtracing_attributes-bfc2d791dbec8257.dylib -object target/llvm-cov-target/debug/deps/obws-4b642cab3c4c801b -ignore-filename-regex '(^|/)(rustc/[0-9a-f]+|tests|examples|benches|target/llvm-cov-target)/|^/Users/dnaka91($|/)|^/Users/dnaka91/.cargo($|/)|^/Users/dnaka91/.rustup($|/)'` (exit status: 1)
taiki-e commented 2 years ago

The error message seems to be similar to #128 fixed in nightly-2022-01-26.

(The integration test failed due to a connection error to the obs-websocket plugin, so I ran only the unit tests (cargo llvm-cov -v --lcov --all-features --lib), but could not reproduce the problem in nightly-2022-02-07.)

dnaka91 commented 2 years ago

Aha! I seem to have found the problem. Got the error even when only running the lib tests (--lib arg).

It was related to the env vars I use. Have set up sccache with RUSTC_WRAPPER=sccache and that was the issue. It usually works well, but seems to often provide wrong artifacts when used together with nightly.

Thanks for the hint about the environment variable, that made me clean the target directory and try again with RUSTC_WRAPPER='' set (which fixed the problem).

Thank you for your time looking into this and even making the effort to download and run my project ❤️

dnaka91 commented 2 years ago

Will just use this issue as a chance to say thanks for this project!

It works really nice so far and the problem that I had here been totally my fault, not the tool's.

Currently, I'm comparing it as an alternative to grcov. That project is pretty good too, but the coverage accuracy is sometimes off, and it doesn't see many updates recently (have been trying to help out here and there, but still…).

Although I like the colorful HTML output of grcov more, this tool seems to work much faster and accurate, so I'll probably move some of my projects over to use cargo-llvm-cov instead.

So all in all, thanks again for this great project (and many of your other projects like pin-project and your GitHub actions that I discovered recently).