Skip to content

Conversation

@jurgenvinju
Copy link
Member

@jurgenvinju jurgenvinju commented Jun 3, 2025

@jurgenvinju jurgenvinju changed the title added the failing test by @paulklint for issue #308 added the failing test for issue #308 Jun 3, 2025
@github-actions
Copy link

github-actions bot commented Jun 3, 2025

Test Results

     72 files   -      27       72 suites   - 27   3m 12s ⏱️ - 2m 34s
244 537 tests +      2  244 535 ✅ +      1  1 💤 ±0  1 ❌ +1 
489 272 runs   - 244 333  489 267 ✅  - 244 335  2 💤  - 1  3 ❌ +3 

For more details on these failures, see this check.

Results for commit 449f449. ± Comparison against base commit b12b40b.

@jurgenvinju
Copy link
Member Author

jurgenvinju commented Jun 3, 2025

@msteindorfer hi! we could use some help here. There seems to be an issue with PersistentHashIndexedBinaryRelation.delete of capsule.

  • It's internal SetMultimap.Immutable<IValue, IValue> object seems to be confused in the presence of key hash collisions.
  • Note that there are two unequal keys both with hash code 0 in the failing example.
  • After one of them is removed with PersistentHashIndexedBinaryRelation.delete, the SetMultiMap is left in a uncanonical state. Namely the elements that are left in there are stored in a different order from the value when created from scratch using insert
  • This makes equals fail which is how @PaulKlint discovered the issue.
  • Added a test that exhibits this behavior to vallang on this PR branch in io.usethesource.vallang.issues.RegressionTests. It's the final test named setDifferenceInThePresenceOfHashCollisions

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant