Skip to content

Fix signer capitulation to account for timing out its local view#6851

Merged
jacinta-stacks merged 5 commits intostacks-network:developfrom
jacinta-stacks:bugfix/signers-send-updates-after-timing-out-block
Feb 9, 2026
Merged

Fix signer capitulation to account for timing out its local view#6851
jacinta-stacks merged 5 commits intostacks-network:developfrom
jacinta-stacks:bugfix/signers-send-updates-after-timing-out-block

Conversation

@jacinta-stacks
Copy link
Contributor

@jacinta-stacks jacinta-stacks commented Feb 3, 2026

Encountered this scenario in GSM testing:
All signers receive burn block N, but half see parent_tenure_last_block_height: S+1 and the rest see parent_tenure_last_block_height: S.

Neither side ever capitulated to the appropriate side because in this instance the signer was still signing (timed out and would sign blocks but never updated its view) so it didn't even attempt capitulation. If GSM activated, this would have stalled. In the stall case, it would at least ATTEMPT a capitulation, but it still not have capitulated because in the case where we have a <70% reaching agreement on a view AND no blocks signed (which was exactly this case. A 50% split)...it does not attempt a capitulation. I am wary to mess with the capitulation logic and think its safer to just issue an update if you time out your local view before then also checking for capitulation based on blocking minorities etc.

…sending an update

Signed-off-by: Jacinta Ferrant <236437600+jacinta-stacks@users.noreply.github.com>
@codecov
Copy link

codecov bot commented Feb 4, 2026

Codecov Report

❌ Patch coverage is 49.19065% with 565 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.25%. Comparing base (5ff2268) to head (18ef1e3).
⚠️ Report is 52 commits behind head on develop.

Files with missing lines Patch % Lines
...c/tests/signer/v0/capitulate_parent_tenure_view.rs 0.00% 411 Missing ⚠️
stacks-signer/src/tests/signer_state.rs 74.31% 140 Missing ⚠️
stacks-signer/src/v0/tests.rs 81.39% 8 Missing ⚠️
stacks-signer/src/v0/signer.rs 88.00% 3 Missing ⚠️
stacks-signer/src/v0/signer_state.rs 96.59% 3 Missing ⚠️

❌ Your project status has failed because the head coverage (74.25%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #6851      +/-   ##
===========================================
- Coverage    74.66%   74.25%   -0.42%     
===========================================
  Files          594      595       +1     
  Lines       358773   359859    +1086     
===========================================
- Hits        267894   267227     -667     
- Misses       90879    92632    +1753     
Files with missing lines Coverage Δ
stacks-node/src/tests/signer/v0/mod.rs 45.74% <ø> (+6.16%) ⬆️
stacks-signer/src/v0/signer.rs 80.38% <88.00%> (+2.67%) ⬆️
stacks-signer/src/v0/signer_state.rs 78.85% <96.59%> (+2.76%) ⬆️
stacks-signer/src/v0/tests.rs 81.33% <81.39%> (-8.39%) ⬇️
stacks-signer/src/tests/signer_state.rs 84.45% <74.31%> (+37.76%) ⬆️
...c/tests/signer/v0/capitulate_parent_tenure_view.rs 0.00% <0.00%> (ø)

... and 75 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5ff2268...18ef1e3. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

… into bugfix/signers-send-updates-after-timing-out-block
Signed-off-by: Jacinta Ferrant <236437600+jacinta-stacks@users.noreply.github.com>
Signed-off-by: Jacinta Ferrant <236437600+jacinta-stacks@users.noreply.github.com>
… into bugfix/signers-send-updates-after-timing-out-block
@jacinta-stacks jacinta-stacks marked this pull request as ready for review February 6, 2026 01:21
Copy link
Contributor

@brice-stacks brice-stacks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good!

@jacinta-stacks jacinta-stacks added this pull request to the merge queue Feb 9, 2026
Merged via the queue into stacks-network:develop with commit 0ab58cf Feb 9, 2026
948 of 958 checks passed
@jacinta-stacks jacinta-stacks deleted the bugfix/signers-send-updates-after-timing-out-block branch February 9, 2026 22:29
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.

3 participants