IntersectMBO/cardano-ledger

Consistent test failure in cardano-ledger-alonzo-test

neilmayhew opened this issue · 4 comments

The failure is in Shelley.Rules.ClassifyTraces, in Chain and Ledger traces cover the relevant cases. (This is a nightly-only test.)

The messages are similar to this:

Only 7.5% at least 5 epochs in a trace, 20% of the time, but expected 20.0%

The percentage varies, but the problem is always in the same test, with all versions of ghc.

The failure can be reproduced locally using

NIGHTLY=true cabal test cardano-ledger-alonzo-test --test-options='-p "/Chain and Ledger/"'

The problem started with the index-state bump for Hackage that was in 0f28081157bef3ae5d7fcd742be13984bf749026 Make it build with ghc 9.10. Bisecting the index dates, I was able to isolate it to 2024-06-08 and 2024-06-09. The only changes to our deps were hashable and the associated bumps to aeson and strict.

Downgrading hashable with a constraint fixes the problem on a branch starting from the ghc 9.10 commit 0f28081157bef3ae5d7fcd742be13984bf749026. However, the same constraint doesn't fix master.

This fixes master:

constraints:
  , hashable == 1.4.4.0
allow-older:
  , aeson:hashable
  , strict:hashable

The only difference in the build plan is then the version of hashable (1.4.4.0 vs 1.4.7.0).

hashable 1.4.5.0 causes the tests to fail. The changelog has two entries:

  • Drop support for GHCs prior 8.6.5
  • Use xxhash for hashing bytestrings and bytearrays