Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Make wide-dedup XXH3 parity tests safe under ARM64 sanitizers

Open
#1,920 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
67/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
c

Research direction

Start with test_wide_dedup_hash_without_allocation and the ARM64 sanitizer failure described in the linked CI run; compare its expected-hash input with the production wide-row path. Keep the parity checks for widths 9 and 32 and the no-allocation assertion, then run test_tdd_recursive under ARM64 ASan/UBSan. Done when it passes without alignment diagnostics or weakened checks.

Written by the indexing model from the issue text.

Description

p2-medium track/platform

Discovery context

The ARM64 sanitizer job for PR #1903 (issue #1369) aborted in CI run 35935910267, job 107433007078, while running tdd_recursive. UBSan reported a misaligned load of xxh_aliasing_uint64x2_t in the pinned xxHash 0.8.4 xxhash.h:4150. The wide-dedup parity test passes a stack int64_t[32] directly to contiguous XXH3_64bits; the production wide-row path instead streams scalar values.

Architect and Critic reviewed this as test-oracle alignment portability, separate from #1369's memory-admission behavior. Preserve the sanitizer evidence and parity/no-allocation assertions when fixing it.

Scope

Make the expected-hash input in test_wide_dedup_hash_without_allocation explicitly aligned for the ARM64 xxHash vector path, or use an equivalent sanitizer-safe reference calculation. Keep the change in test code; do not change production dedup behavior, vendor or upgrade xxHash, suppress UBSan, or weaken alignment checks.

Acceptance criteria

  • test_tdd_recursive passes under ARM64 ASan/UBSan with no alignment diagnostics.
  • The wide-row parity checks still cover widths 9 and 32, and the no-allocation assertion remains.
  • The relevant ARM64 sanitizer target passes without test exclusions, sanitizer suppressions, or weakened compiler/runtime checks.
  • The pinned dependency and reproducible test setup remain documented.
Dominant language
C
Stars
18
Forks
2
Avg merge
11h 33m
Merged PRs (30d)
296

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from semantic-reasoning/wirelog

All issues in semantic-reasoning/wirelog

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.