ci: pin sbpf and Solana versions in ASM workflow#625
Open
MarkFeder wants to merge 1 commit into
Open
Conversation
The ASM build-and-test job installs sbpf from the git tip and Solana from
the floating "stable" channel, both unpinned. Around 2026-06-29 sbpf moved
0.1.9 -> 0.2.2 and Solana stable moved 4.0.3 -> 4.1.1; the new sbpf emits an
sBPF binary the runtime loader rejects at execution ("Program is not
deployed"), failing every ASM example (checking-accounts, create-account,
hello-solana, transfer-sol, ...).
Pin sbpf to 0223df0e (v0.1.9) and Solana stable to 4.0.3 -- the exact
last-green combination -- to restore the ASM workflow. The beta leg is left
unpinned since it is continue-on-error and intentionally tracks the moving
channel.
| # tip moved to v0.2.2, which emits an sBPF binary the runtime loader | ||
| # rejects at execution ("Program is not deployed"), breaking every ASM | ||
| # example. Keep in sync with the pinned Solana version below. | ||
| cargo install --git https://github.com/blueshift-gg/sbpf.git --rev 0223df0e |
There was a problem hiding this comment.
The
--rev value is an 8-character short SHA. While Git expands short SHAs unambiguously most of the time, using the full 40-character SHA is more portable and explicit — it also makes it clear this is a stable, immutable reference and prevents any future ambiguity if the repo accumulates more commits. The full SHA for 0223df0e can be obtained with git -C <clone> rev-parse 0223df0e.
Suggested change
| cargo install --git https://github.com/blueshift-gg/sbpf.git --rev 0223df0e | |
| cargo install --git https://github.com/blueshift-gg/sbpf.git --rev <full-40-char-sha> |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
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.
Problem
The ASM
build-and-testjob has been red onmainsince 2026-06-29, failing every ASM example with:Tests that expect
custom program error: 0x1..0x6instead getinvalid account data for instruction, sochecking-accounts,create-account,hello-solana,transfer-sol(and the rest of the ASM group) all fail.Root cause
solana-asm.ymlinstalls both tools unpinned, so they drift with upstream:sbpf0223df0e)54a3a273)solana-cli(stable)sbpfbumped 0.1.9 → 0.2.2 and now emits an sBPF binary the runtime loader rejects at execution ("Program is not deployed"). The build still succeeds; the failure is at load/execute time. No repo commit touched the ASM examples in the break window — it is pure toolchain drift.Fix
Pin to the exact last-green combination:
sbpf→--rev 0223df0e(v0.1.9)stableleg →4.0.3The beta leg is intentionally left unpinned — it is already
continue-on-errorand is meant to track the moving channel, so it cannot fail the job.Note / follow-up
This restores CI by freezing the ASM toolchain to the last-known-good pair. A forward-fix (making the ASM examples compatible with
sbpf0.2.x / Solana 4.1.x) is the longer-term path and can be done separately; this unblocks the currently-red ASM check in the meantime.