chore(deps): [v1.9] integrate greth v2.3.0 (pin bc817c64) - #804
Conversation
- pin greth + reth-primitives-traits patch to Galxe/gravity-reth@bc817c64 (PR Galxe#414 block-gas last gate at Beta; includes Galxe#413/Galxe#412/Galxe#410) - align gravity_node alloy to greth v2.3.0 (alloy-primitives 1.6.0, alloy-* 2.0.5) - enable tokio taskdump (SDK builds with --cfg tokio_unstable) - adapt cli/reth_cli to reth v2.3.0 command signatures and TracingGuards - apply greth node log defaults so file logging stays on
greth Galxe#412 fail-closes type-4 packing until Gravity Beta. Without betaTime the prague suite's SetCode txs never mine (receipt timeout). Align betaTime with pragueTime so protocol enable and lockdown release happen on the same wall-clock for this suite.
greth v2.3+ can keep RocksDB LOCK held for several seconds after SIGTERM while flushing. Generated per-node stop.sh and cluster/stop.sh used to delete the pid file and return immediately (or after a short wait that still did not cover kill -9 reaping), so e2e restart raced the lock and died with "Resource temporarily unavailable" (single_node BATCH_COMMIT and pfn_chain blackhole phase). - stop.sh: wait until kill -0 fails after SIGTERM (~30s) and after SIGKILL - deploy.sh: same wait loop in all three per-node stop templates - node.stop: capture PID before stop.sh, wait for real process exit
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4837ecf03c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| deadline = time.monotonic() + timeout | ||
| while time.monotonic() < deadline: | ||
| try: | ||
| os.kill(pid, 0) |
There was a problem hiding this comment.
Treat zombie node PIDs as stopped
In the e2e restart path (run_docker.sh → runner.py/cluster tests → Node.stop()), this wait treats every PID that answers signal 0 as still holding the database lock. On Linux, zombie processes still make os.kill(pid, 0) succeed (validated with a forked child in /proc/.../stat state Z), and the Docker runner starts the suite under bash -c while per-node start.sh backgrounds gravity_node and exits, so a stopped node can be reparented to PID 1 and remain as a zombie even after RocksDB has been released. In that context the new stop path waits out the timeout and returns false, breaking restart/rollback-style tests; consider treating /proc/$pid state Z as gone (and applying the same predicate to the generated stop scripts).
AGENTS.md reference: AGENTS.md:L5-L8
Useful? React with 👍 / 👎.
Summary
Port of #802 onto
branch-v1.9.branch-v1.9(notmain)feat(oracle): wire generic relayer runtime), which was merged tomainbut must not land on v1.9. That PR rewires the oracle relayer + pins different greth/gaptos revs (53a9df97/a64f8adc).upstream/branch-v1.9@6c233dfc(same merge-base as the original chore(deps): integrate greth v2.3.0 for main (companion e2e; greth via #803 @ 53a9df97) #802 head).Greth pin
greth/ workspacereth-primitives-traitspatch →bc817c642c9c3816cc4e22754e13e3c9633419dd(fix(tx-filter): apply block gas as last gate at Beta (discard non-fitting) gravity-reth#414 — block-gas last gate at Beta; includes fix: fix txn validator #413/feat: Implenment core trait #412/fix: fix serde version #410)gaptosremains the v1.9 pin (b1f68dc…), not the feat(oracle): wire generic relayer runtime #803 Aptos revKey changes (same as #802)
alloy-primitives1.6.0,alloy-*2.0.5); tokiotaskdumpenabled forgravity_nodecli.rs/reth_cli.rsadapted to reth v2.3.0 command signatures (Runtime/CliContext) and greth node log defaults /TracingGuardsbetaTimewithpragueTimeso greth feat: Implenment core trait #412 EIP-7702 lockdown is released for SetCode txscluster/stop.sh,cluster/deploy.shstop templates, andnode.pyso greth v2.3+ RocksDB LOCK flush after SIGTERM does not race e2e restartOut of scope (same as #802)
gravity_e2estorage_v2 baseline/upgrade/fresh_sync workTest plan
Cargo.toml,Cargo.lock,bin/gravity_node/Cargo.toml,cli.rs,reth_cli.rs,cluster/deploy.sh,cluster/stop.sh, praguegenesis.toml,node.pybc817c64…; no53a9df97/a64f8adc(feat(oracle): wire generic relayer runtime #803) pins;relayer.rsunchanged vsbranch-v1.9RUSTFLAGS="--cfg tokio_unstable" cargo check -p gravity_nodeResource temporarily unavailablebetaTime)