collisions due to overlapping loads #259
Labels
No labels
announcement
bug
build
CI
dependencies
documentation
duplicate
enhancement
experience feedback
feature request
github_actions
help wanted
install
invalid
Long-term
optimization
portability
question
target-specific
test issue
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-Cyan4973/xxHash#259
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
There are massive collisions on ELF symbols (which are functions names found in binaries and shared libraries).
I pushed the full list along with the data set (
elfsym0u.zst, about 9 million strings).Thanks for these tests and feedback @svpv .
It seems to happen in the 9-16 input range, which gives a clear target to analyze.
Come on ....
There is a clear mistake in this module : it doesn't count the contribution of input length anywhere in the formula. This is clearly an oversight. I'll fix it, I expect it to solve the reported collision issue.
An associated issue is: how could this mistake manage to pass the tests ? I must have another look at the test suite, it should catch these cases.
Ouch.
Yup, that's a blooper.
Fix ongoing in #260.
I still need to work on these test tools.
But running these tests can be long, and I might need a quick release next week for internal usages.
So,
SMHasheris unable to produce this sequence of inputs,and my own collision analyzer only works on same-size samples,
but the issue is about collision between samples of different sizes.
So I guess I'm going to create a new tool to catch those ones...
It's more difficult than I anticipated
to modify a generic pattern generator
to output similar-yet-unique patterns like the ones reported in this issue.
It's a pity, as a generic generator could have been merged into the collision analyzer tool.
Another method is to create a dedicated pattern generator,
specifically written to generate patterns similar to those reported by @svpv.
Probably simpler and faster ...