Skip to content

Release 0.0.12 unusable #75

Closed
Closed

Description

@LittleHuba

Description

When upgrading the dependency in score_communication to 0.0.12 we get a persistent lockfile error that is unrecoverable in our downstream module.
The investigation points to the release 0.0.12 being done with an outdated lockfile.

Analysis results

Error:

ERROR: /home/q536648/.cache/bazel/_bazel_q536648/e5ca210826d4a557c2389a5d3cc48128/external/rules_rust+/crate_universe/private/generate_utils.bzl:428:13: Traceback (most recent call last):
File "/home/q536648/.cache/bazel/_bazel_q536648/e5ca210826d4a557c2389a5d3cc48128/external/rules_rust+/crate_universe/extensions.bzl", line 1167, column 37, in _crate_impl
_generate_hub_and_spokes(
File "/home/q536648/.cache/bazel/_bazel_q536648/e5ca210826d4a557c2389a5d3cc48128/external/rules_rust+/crate_universe/extensions.bzl", line 628, column 44, in _generate_hub_and_spokes
repin = not lockfile or determine_repin(
File "/home/q536648/.cache/bazel/_bazel_q536648/e5ca210826d4a557c2389a5d3cc48128/external/rules_rust+/crate_universe/private/generate_utils.bzl", line 428, column 13, in determine_repin
fail(msg)
Error in fail: Error: Digests do not match: Current Digest("b3987846afd9d77626eb292c5e15da1921775911b0ea5577deb6ddba25dec68f") != Expected Digest("9d4b34c145951528c4194bf942c5c847cc040e74234d234eaa9ab404cf2fde08")

Solution

Potential solution is to update the lockfile and create a new release.

Error Occurrence Rate

None

How to reproduce

In a downstream module update to 0.0.12.
Then update the lockfile with bazel mod deps --lockfile_mode=update
Error is emitted.

Supporting Information

No response

Classification

Blocker

First Affected Release

not released (main)

Last Affected Release

not released (main)

Expected Fixed Release

before release (main)

Category

  • Safety Relevant
  • Security Relevant

Activity

  1. added theissue type on Sep 3, 2026
  2. arkjedrz commented on Sep 9, 2026

    @arkjedrz
    Contributor

    List of failing PRs:

    Reproduction steps for persistency:

    gh repo clone eclipse-score/persistency
    gh pr checkout 401
    bazel clean --expunge
    bazel build --lockfile_mode=error --config=per-x86_64-linux //score/kvs/rust_kvs:rust_kvs //score/kvs/rust_kvs_tool:kvs_tool

    ⚠️ bazel clean --expunge is important to ensure clean starting point. It's possible to workaround the issue locally, but it's not a solution.

    Error message:

    ERROR: Analysis of target '//score/kvs/rust_kvs_tool:kvs_tool' failed; build aborted: MODULE.bazel.lock is no longer up-to-date because: One or more files the extension '@@rules_rust+//crate_universe:extensions.bzl%crate' is using have changed. Please run `bazel mod deps --lockfile_mode=update` to update your lockfile.
    
  3. self-assigned this
    on Oct 5, 2026
  4. moved this to In Progress in S-CORE Roadmapon Oct 5, 2026
  5. pawelrutkaq commented on Oct 5, 2026

    @pawelrutkaq
    Contributor

    This is the outcome of #69 . So the problem is that when we use these modules from different one, the hash digests differ because some labels change from @@// to score_creates+//.

    Since we will probably update to the new rules_rust removing lockfiles from spec will not help and will make the other consumers fail if they use 0.71+ (@ian-harmon-traton ).

    Proposal: Use CARGO_BAZEL_REPIN=true bazel mod deps --lockfile_mode=update to regenerate lockfile within your modules until updates will not be done. @arkjedrz @LittleHuba ?

    I reverted the above; this works but requires every later command to use the specified env var so let me look into it more what we can do ;(

  6. pawelrutkaq commented on Oct 5, 2026

    @pawelrutkaq
    Contributor

    Okay, retested again, and the correct procedure when changing score_crates would be:

    • bazel clean --expunge (may be needed)
    • CARGO_BAZEL_REPIN=true bazel mod deps --lockfile_mode=update
    • bazel mod deps --lockfile_mode=update

    Can You try that @arkjedrz @LittleHuba ?

  7. arkjedrz commented on Oct 5, 2026

    @arkjedrz
    Contributor

    @pawelrutkaq
    What You proposed is what I meant by "It's possible to workaround the issue locally, but it's not a solution.". For CI it remains broken.
    Here's a new PR for Persistency after those commands: eclipse-score/persistency#465

  8. pawelrutkaq commented on Oct 6, 2026

    @pawelrutkaq
    Contributor
  9. pawelrutkaq commented on Oct 6, 2026

    @pawelrutkaq
    Contributor

    Okey, above description was how to solve it localy only due to the fact that external modules are cached in seperate cache and expunge does not clear them (depends on your cache settings too for bazel). I have updated score_creates and now it works in CI too. When we use rules_ruse 0.71 we can see if the problem is fixed, but generallt looks like edge case issue with crates patching

  10. pawelrutkaq commented on Oct 8, 2026

    @pawelrutkaq
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions