Skip to content

autogen.sh: fall back to internal-soroban-env for unreleased env commits - #5479

Draft
sisuresh wants to merge 1 commit into
masterfrom
ccr-ee48da84-2fp89q
Draft

sisuresh wants to merge 1 commit into
masterfrom
ccr-ee48da84-2fp89q

Conversation

@sisuresh

@sisuresh sisuresh commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Description

Follow-up to stellar/pipelines#1128. Release commits can now keep .gitmodules pointed at the public rs-soroban-env while their env commits are still only in internal-soroban-env, but local builds then fail until the env is public.

If git submodule update --init fails, autogen.sh now retries once with a one-off git -c url.<internal-soroban-env>.insteadOf=<rs-soroban-env> rewrite. Developers with access build without editing .gitmodules; everyone else fails fast (GIT_TERMINAL_PROMPT=0). Submodules are pinned by hash, so the fetched code is identical, and nothing is written to git config.

Tested the submodule block from the real script against local repos: commit public (no retry), internal-only with access (retry succeeds), internal-only without access (exits non-zero), rerun after a partial failure, and no leftover rewrite in local or global config. Not yet tested against GitHub; that needs someone with internal access, plus a check that GitHub Actions still fails while env commits aren't public.

Checklist

  • Reviewed the contributing document
  • Rebased on top of master (no merge commits)
  • Ran clang-format v8.0.0 (via make format or the Visual Studio extension) — N/A, shell only
  • Compiles — not built; sh -n autogen.sh passes
  • Ran all tests — script-level tests only (above)
  • If change impacts performance, include supporting evidence per the performance document — N/A

🤖 Generated with Claude Code

https://claude.ai/code/session_0137rr1HEVwuSp8tysMLYt5q


Generated by Claude Code

When a release pins rs-soroban-env commits that are not public yet,
`git submodule update` fails for local builds. Retry once with a
one-off `git -c url.<internal>.insteadOf=<public>` rewrite so developers
with access to internal-soroban-env can build without editing
.gitmodules. Submodules are pinned by hash, so the code fetched is
identical either way. The retry disables credential prompts so it fails
fast for anyone without access, and nothing is written to git config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0137rr1HEVwuSp8tysMLYt5q
@graydon graydon mentioned this pull request Oct 8, 2026
dappcupsoap pushed a commit to dappcupsoap/stellar-core that referenced this pull request Oct 13, 2026
We've had a flaky overlay test breaking CI runs for a while now (most
recently
https://github.com/stellar/stellar-core/actions/runs/37384282444/job/112013606376?pr=5479
in stellar#5479). The root cause is
a test helper that's used in a bunch of places that tries to bypass
outbound flow control -- basically to emulate a misbehaving peer sending
stuff they shouldn't send -- but doesn't necessarily maintain invariants
expected by the flow control subsystem. As a result, one recently-added
test has a nondeterministic/racy break of one of the invariants, so the
test aborts with an assert failure from time to time.

This change renames the test helper method to clarify what it's supposed
to be doing, and then modifies what it _does_ to explicitly mark (in
test-only code) outgoing messages that are supposed to bypass flow
control and then .. just bypasses the flow control including the
book-keeping code that has invariants to maintain.

At least, this is what sol-and-I discussed and implemented. I am
_fairly_ convinced it's correct. It also does seem to get rid of the
failure (I ran the test in a loop, crashes before, no more crashes
after). But I wouldn't mind careful and conceptual review!

I also included here a new, different workaround for the bug I tried but
failed to fix in stellar#5462 -- config.status getting stuck reconfiguring with
unknown arguments accidentally promoted from gperftools. The previous
fix didn't work, but hopefully this one does!

I **also** included a fix for **another** flaky test, "ledger state
update flow with parallel apply", which has been periodically failing
with a simulation timeout.
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