feat(zeam): flip --chain-worker default to on (c-2c part 2 burn-in)#171
Merged
ch4r10t33r merged 1 commit intomainfrom May 6, 2026
Merged
feat(zeam): flip --chain-worker default to on (c-2c part 2 burn-in)#171ch4r10t33r merged 1 commit intomainfrom
ch4r10t33r merged 1 commit intomainfrom
Conversation
…-in) Per @ch4r10t33r's call: shipping the chain-worker default-off would mean the burn-in is exactly testing the path nobody actually runs in prod. Flip both deployment paths' default to on: * client-cmds/zeam-cmd.sh: ZEAM_CHAIN_WORKER default '' → 'on'. Uses ${VAR-on} (no colon) so an explicit ZEAM_CHAIN_WORKER= can still suppress the flag for older zeam builds; the colon form would also overwrite the empty value. * ansible/roles/zeam/defaults/main.yml: zeam_chain_worker default '' → 'on'. Override via -e zeam_chain_worker=off (or in inventory group_vars) for the kill-switch path; set to '' to suppress entirely. Matches the zeam compiled-in default flip in blockblaz/zeam #830 (--chain-worker enum {on, off}, default .on). REQUIRES a zeam build with chain-worker support, i.e. blockblaz/zeam:devnet4 >= v0.4.15. v0.4.14 has a broken bool CLI shape (#830 fixes that) and v0.4.13 doesn't recognise --chain-worker at all; against either, set ZEAM_CHAIN_WORKER= or zeam_chain_worker: '' to suppress the flag. Verified all four script branches: * unset env → emits --chain-worker on (the new default) ✅ * ZEAM_CHAIN_WORKER=off → emits --chain-worker off (kill-switch) ✅ * ZEAM_CHAIN_WORKER='' → emits no flag (older-zeam compat) ✅ * ZEAM_CHAIN_WORKER=hello → WARN logged, no flag emitted ✅
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Per @ch4r10t33r's call after the c-2b/c-2c merge (blockblaz/zeam#828): turn the chain-worker on by default in the deployed config so the burn-in actually exercises the prod path.
What
client-cmds/zeam-cmd.shZEAM_CHAIN_WORKER:-(default empty → no flag)ZEAM_CHAIN_WORKER-on(defaulton)ansible/roles/zeam/defaults/main.ymlzeam_chain_worker: ""zeam_chain_worker: "on"The shell side uses
${VAR-on}(no colon) deliberately: the colon form would also overwrite an explicitly-emptyZEAM_CHAIN_WORKER=withon, leaving operators no way to suppress the flag against older zeam builds. The non-colon form letsZEAM_CHAIN_WORKER=(explicit empty) emit no flag — useful as an escape hatch.Override behavior (all four cases)
Ansible side mirrors:
Required image
This PR REQUIRES
blockblaz/zeam:devnet4>= v0.4.14 (the c-2b release). Older images (v0.4.13 / pre-c-1) do not recognise--chain-workerat all and will fail to start; if you need to deploy this PR against an older image, theZEAM_CHAIN_WORKER=/zeam_chain_worker: ""escape hatch suppresses the flag entirely.(v0.4.14's
--chain-workeris a presence-only bool — simargs sets it to true and ignores any value token. So--chain-worker onworks as "enable", and--chain-worker offwould ALSO enable, treatingoffas a stray positional. If you need the kill-switch, use theZEAM_CHAIN_WORKER=empty form to suppress the flag entirely on v0.4.14. A future zeam release with a value-taking enum would let--chain-worker offactually disable.)Burn-in target (per zeam #803 c-2c plan)
--chain-worker onzeam_lock_hold_seconds{lock="states", site="onBlock.commit"}p99 — should drop dramatically vs slice (b) baseline (rwlock no longer load-bearing under chain-worker single-writer regime).lean_chain_state_refcount_distribution— typical=1, occasional 2-4, never >16 (entries stuck >16 indicate a leaked reader acquire).lean_chain_queue_dropped_total— should be 0 under nominal load; non-zero means producer/consumer mismatch worth investigating.Validation