Skip to content

Graceful random restarts in test_simulated_load_reconfig_restarts - #28255

Merged
mystenmark merged 1 commit into
mainfrom
mlogan/graceful-restart-simtest
Oct 28, 2026
Merged

mystenmark merged 1 commit into
mainfrom
mlogan/graceful-restart-simtest

Conversation

@mystenmark

@mystenmark mystenmark commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Description

Simtests only ever hard-killed nodes, which models SIGKILL. A production node stopped by SIGTERM drops its tokio runtime instead: async tasks keep running briefly while spawn_blocking returns cancelled handles. Code that reads a cancelled task as a normal result can persist wrong state in that window, and no test exercised it. C3-A02 (#28243) is one such bug.

RandomNodeRestarter::with_graceful_shutdown stops validators with mysten-sim's runtime-drop model, and test_simulated_load_reconfig_restarts now uses it, restarts more often (every 2-6 s), and raises the rate of conflicting transactions so the commit finalizer's indirect finalization runs. The mysten-sim bump also gives blocking tasks sim-time latency in all simtests, so code must be correct when spawn_blocking does not complete in the same instant.

Pins mysten-sim to its main head (MystenLabs/mysten-sim#80 plus the tokio 1.54.1 bump in #81) and anemo to the MystenLabs/anemo#76 merge commit. The test found the bugs fixed in #28252, #28253, and #28254, and it fails without them.

Test plan

With all dependencies: 500 of 500 seeds of test_simulated_load_reconfig_restarts pass. With #28243's finalizer fix reverted, the test hit the C3-A02 fork in 1 of 500 seeds, without any failpoint at the bug site.

🤖 Generated with Claude Code


Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • gRPC:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:
  • Indexing Framework:

@vercel

vercel Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
multisig-toolkit Error Error Oct 8, 2026 5:34pm UTC
sui-kiosk Error Error Oct 8, 2026 5:34pm UTC

Request Review

@mystenmark
mystenmark deployed to sui-typescript-aws-kms-test-env October 8, 2026 17:10 — with GitHub Actions Active
@mystenmark
mystenmark force-pushed the mlogan/graceful-restart-simtest branch 4 times, most recently from 3ad7f0d to e178870 Compare October 22, 2026 23:50
@mystenmark
mystenmark marked this pull request as ready for review October 23, 2026 03:55
@mystenmark
mystenmark requested a review from a team as a code owner October 23, 2026 03:55
RandomNodeRestarter can stop validators the way SIGTERM does, using
mysten-sim's graceful shutdown (runtime-drop model): async tasks keep
running briefly while spawn_blocking returns cancelled handles. The
restarts test uses it, restarts more often, and raises the rate of
conflicting transactions. Bumps mysten-sim (graceful shutdown, blocking
latency) and anemo (resolve no longer panics on cancellation).
@mystenmark
mystenmark force-pushed the mlogan/graceful-restart-simtest branch from e178870 to de59aaa Compare October 27, 2026 17:38
@mystenmark
mystenmark merged commit c42cc7d into main Oct 28, 2026
56 of 59 checks passed
@mystenmark
mystenmark deleted the mlogan/graceful-restart-simtest branch October 28, 2026 17:54
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