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

metal: convolution ring lookup overflows at valid high positions

Open
#795 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
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
rust

Research direction

Read crates/metal/kernels/delta.metal at the reported tap_x location and the shared oracle at crates/metal/src/bin/shared/oracle_delta.rs; first trace how pos0, back, and ring slots are calculated. Add the boundary case to the delta tests and compare both implementations with independently calculated predecessor slots. Done means the valid high-position call selects the expected slots and produces correct convolution inputs and recurrent state.

Written by the indexing model from the issue text.

Description

review-bot

A public delta_rows call with pos = u32::MAX - 9 and nine rows passes check_rows. In tap_x, row 0 with distance 1 computes ring slot 0 instead of slot 4 because pos0 + RING_ROWS - back wraps before the modulo. Distinct finite ring values therefore produce incorrect convolution inputs and recurrent state without a fault. This expression already exists on the base branch. After the existing pos0 < back guard, compute (pos0 - back) % BLOOMERY_DELTA_RING_ROWS. Apply the same subtraction to the shared oracle's tap, whose current addition also overflows. Add a boundary case checked against independently calculated predecessor slots.

Evidence (at the base of #792):

Filed by Shingler, the review bot, while reviewing #792; the defect is outside that pull request.

Dominant language
Rust
Stars
21
Forks
4
Avg merge
2h 32m
Merged PRs (30d)
530

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 midagedev/bloomery

All issues in midagedev/bloomery

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.