Skip to content

feat(blocksync): preserve continuous mode for Cronos v1.8 - #2

Merged
littlehand26 merged 2 commits into
v0.39.xfrom
chore/merge-cronos-v1.8
Oct 27, 2026
Merged

littlehand26 merged 2 commits into
v0.39.xfrom
chore/merge-cronos-v1.8

Conversation

@littlehand26

@littlehand26 littlehand26 commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Cronos v1.8 writers need continuous block sync on the v0.39 release line. Preserve that mode on the exact Cronos baseline 14b7b93046e3, with validator/adaptive-mode rejection and peer-height metrics.

Fix the mempool broadcast goroutine leak exposed by continuous sync: disconnected peers now exit the sync wait, and peer/reactor shutdown also ends the peer-state wait. This releases the goroutine references without requiring a switch to consensus. Continuous sync and normal transaction propagation semantics are preserved.

Validation with Go 1.25.11:

  • go test ./config ./blocksync ./node passed for the continuous-sync port.
  • The new disconnect/peer-state lifecycle regressions fail against the original implementation.
  • go test ./mempool -count=1 -timeout=5m passed.
  • New lifecycle and post-sync broadcast tests passed under -race -count=20, including 20 disconnect cycles per run.
  • go vet ./mempool, golangci-lint v2.11.3 on ./mempool/..., formatting and diff checks passed.
  • Independent Codex/Kimi review and cross-check found no confirmed newly introduced P0/P1/P2 issue.

The deterministic sync-release/disconnect race and saturated gossip semaphore paths have not been exercised by the new tests. The pre-existing semaphore loop does not respond to stopping only the reactor while its peer remains running. No production rollout is included.

I hereby certify that my contribution is in accordance with the Developer Certificate of Origin (https://developercertificate.org/).

Signed-off-by: lihe <he.li@debank.com>
@github-actions

Copy link
Copy Markdown

🔒 WARNING: unsigned commits detected

This pull request contains 1 commit(s) without a verified signature.

How to fix:

  1. Set up commit signing (GPG or SSH).
  2. Amend/rebase so every commit in this PR is verified-signed.
  3. Push the updated branch and open a new PR, or ask a maintainer to reopen once fixed.

Docs: https://docs.github.com/authentication/managing-commit-signature-verification

Unsigned commits:

  • 6136228 — feat(blocksync): port continuous sync to Cronos v0.39

@github-actions

Copy link
Copy Markdown

🔒 WARNING: unsigned commits detected

This pull request contains 2 commit(s) without a verified signature.

How to fix:

  1. Set up commit signing (GPG or SSH).
  2. Amend/rebase so every commit in this PR is verified-signed.
  3. Push the updated branch and open a new PR, or ask a maintainer to reopen once fixed.

Docs: https://docs.github.com/authentication/managing-commit-signature-verification

Unsigned commits:

  • 6136228 — feat(blocksync): port continuous sync to Cronos v0.39
  • 6a2f431 — fix(mempool): stop broadcast routines for disconnected peers

@littlehand26
littlehand26 merged commit 6e7d2e8 into v0.39.x Oct 27, 2026
31 of 32 checks passed
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