Skip to content

Recent regression in coverage #143712

@alex

Description

@alex

I apologize in advance, because I lack a clear minimal reproducer for this:

In the last day day or two, for pyca/cryptography we began observing a regression in coverage reports:

We have a fairly involved coverage process where we run many different CI jobs with -Cinstrument-coverage, covert them to LCOV with llvm-profdata + llvm-cov export, and then we import them into Python's coverage.py to get a unified coverage report.

We also mandate 100% line coverage for our Rust code.

Starting in the last few days, these jobs started failing non-deterministically, here is an example failure: https://github.com/pyca/cryptography/actions/runs/16183191041?pr=13155#summary-45684131641 (I say non-deterministically because if we re-run the tests, we'll occasionally get 100% coverage.)

Notably, if you look at the missing coverage lines, they don't particularly makes sense. For example:

https://github.com/pyca/cryptography/blob/main/src/rust/cryptography-openssl/src/fips.rs#L42-L43

There is no way for these two lines to be missing coverage while the rest of the function is covered.

https://github.com/pyca/cryptography/blob/main/src/rust/src/backend/keys.rs#L138-L139

Same thing, if 137 is covered then 138/139 logically must be.

I recognize that this is barely a reproducer, and not particularly convenient. I'm hoping that if someone can identify recent commits that may have impacted coverage metrics, we can use that to figure out how to build a reproducer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-code-coverageArea: Source-based code coverage (-Cinstrument-coverage)C-discussionCategory: Discussion or questions that doesn't represent real issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions