fix(ctf): bump chainlink-testing-framework to fix Sui/Aptos cwd tar race#22011
Merged
pavel-raykov merged 3 commits intodevelopfrom Apr 15, 2026
Merged
fix(ctf): bump chainlink-testing-framework to fix Sui/Aptos cwd tar race#22011pavel-raykov merged 3 commits intodevelopfrom
pavel-raykov merged 3 commits intodevelopfrom
Conversation
Bumps github.com/smartcontractkit/chainlink-testing-framework/framework
across all repo modules to pull in the upstream fix that gates the
testcontainers ContainerFile entry on a non-empty ContractsDir.
Previously, Sui and Aptos blockchain providers in the framework called
filepath.Abs(in.ContractsDir) and unconditionally added a Files entry
to the container request. Because filepath.Abs("") resolves to cwd,
testcontainers-go tarred the entire test working directory. Any file
that grew between os.Stat (header size) and io.Copy (body) tripped
archive/tar's ErrWriteTooLong guard, surfacing in CCIP Sui smoke tests
as:
ctf_provider.go:230: Attempt 1/10: Failed to start CTF Sui container:
create container: created hook: can't copy ... to container:
error compressing file: archive/tar: write too long
The retry loop (10 attempts, 1s) usually masked the flake but
intermittently exhausted, hard-failing tests like
Test_CCIPTokenTransfer_Sui2EVM_BurnMintTokenPool_WithAllowlist.
Upstream fix: smartcontractkit/chainlink-testing-framework#2519
Contributor
|
I see you updated files related to
|
Contributor
|
✅ No conflicts with other open PRs targeting |
Picks up smartcontractkit/chainlink-testing-framework#2519 refactor commit (14664092839c) — same behavioural fix, minimized diff.
4 tasks
Pulls in smartcontractkit/chainlink-testing-framework#2519 — the Sui/Aptos CTF provider cwd tar-race fix. Eliminates intermittent 'archive/tar: write too long' flakes in Sui CCIP smoke tests. Tidied go.sum across all 8 modules.
cac4190 to
ebb6165
Compare
|
jmank88
approved these changes
Apr 15, 2026
pavel-raykov
approved these changes
Apr 15, 2026
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.





Summary
Bumps
github.com/smartcontractkit/chainlink-testing-framework/frameworktov0.15.16across all repo modules to pull in the upstream fix that resolves a long-standing flake in Sui (and latently Aptos) CCIP smoke tests.Upstream PR: smartcontractkit/chainlink-testing-framework#2519 (merged as
v0.15.16).Evidence — real CI failure
Run 24372896623, job 71183740665, test
Test_CCIPTokenTransfer_Sui2EVM_BurnMintTokenPool:Three sequential attempts same error, same cwd. Retry loop absorbed it on that run; the hard-failure mode exhausts all 10 attempts.
Root Cause
CTF's Sui and Aptos blockchain providers unconditionally added a
testcontainers.ContainerFileentry sourced fromfilepath.Abs(in.ContractsDir). WhenContractsDiris empty (thechainlink-deployments-frameworkSui/Aptos providers never set it —CTFChainProviderConfigexposes no knob),filepath.Abs("")resolves to the process cwd. testcontainers-go then tars the entire cwd into the container.In CCIP smoke tests, cwd is
integration-tests/smoke/ccip/, actively written bydeployment/logger.SingleFileLogger(relativebaseDir = "logs",autoFlushWritersyncs on every write). Files that grow betweenos.Stat(header size) andio.Copy(body) trip Go'sarchive/tar.ErrWriteTooLong.startContainerinchainlink-deployments-framework/chain/sui/provider/ctf_provider.go:152,226wrapsNewBlockchainNetworkinretry.Dowithretry.Attempts(10),retry.Delay(1s)— flake usually self-heals after a few attempts but occasionally exhausts.Fix
The upstream CTF change gates the
Files:entry onin.ContractsDir != "", eliminating the unnecessary cwd tar in the no-contracts path. Zero behaviour change for callers that supply aContractsDir. Same fix applied toaptos.go. Solana path intentionally untouched (all Solana callers setContractsDirexplicitly).Safety analysis
ContractsDircallers: identical behaviour.ContractsDircallers:req.Files = nil. testcontainers-go hook (lifecycle.go:146-172) loopsfor _, f := range files→ zero iterations on nil, no container-side state change.TypeSui/TypeAptos: 3 callers total (chainlink-deployments-frameworkSui provider,chainlink-deployments-frameworkAptos provider,chainlink-aptos/integration-tests/ccip/ccip_deployment_test.go) — none passContractsDir. The empty path is not a documented default: the CTFInputstruct comment scopes the field to Solana./contents anyway — contracts publish host-side via RPC (sui client publish,aptos move publish).req.Fileswas dead code for these chains.v0.15.13(most modules) /v0.15.15(core/scripts) →v0.15.16. Delta inframework/components/blockchain/is 1 unrelated commit (#2517 update sui version) + the 2 fix commits.What's In This PR
Module bumps only — no source changes:
core/scripts/go.moddeployment/go.moddevenv/go.mod,devenv/fakes/go.modintegration-tests/go.mod,integration-tests/load/go.modsystem-tests/lib/go.mod,system-tests/tests/go.modPinned to
v0.15.16(stable release tag).Test plan
go build ./...clean locally acrossdeploymentandintegration-testsmodulesgo mod tidyclean across all 8 modulesarchive/tar: write too longoccurrences in any CI log on this PR