Skip to content

Disable cranelift fallback for non-onchain execution modes#4541

Merged
tsahee merged 2 commits intomasterfrom
braga/dis-cranelift-eth-call
Mar 23, 2026
Merged

Disable cranelift fallback for non-onchain execution modes#4541
tsahee merged 2 commits intomasterfrom
braga/dis-cranelift-eth-call

Conversation

@bragaigor
Copy link
Copy Markdown
Contributor

@bragaigor bragaigor commented Mar 23, 2026

When allowFallback is enabled globally and LLVM compilation fails, activateProgramInternal falls back to cranelift. This PR disables such fallback for non-onchain execution modes

Closes NIT-4697

Signed-off-by: Igor Braga <5835477+bragaigor@users.noreply.github.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 23, 2026

Codecov Report

❌ Patch coverage is 25.00000% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 34.52%. Comparing base (2fd04bf) to head (e251891).
⚠️ Report is 11 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4541      +/-   ##
==========================================
- Coverage   34.54%   34.52%   -0.02%     
==========================================
  Files         497      497              
  Lines       58907    58936      +29     
==========================================
  Hits        20347    20347              
- Misses      34965    34985      +20     
- Partials     3595     3604       +9     

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 23, 2026

❌ 10 Tests Failed:

Tests completed Failed Passed Skipped
4526 10 4516 0
View the top 3 failed tests by shortest run time
TestAliasingFlaky
Stack Traces | -0.000s run time
=== RUN   TestAliasingFlaky
=== PAUSE TestAliasingFlaky
=== CONT  TestAliasingFlaky
    common_test.go:768: BuildL1 deployConfig: DeployBold=true, DeployReferenceDAContracts=false
INFO [03-23|17:46:10.947] New local node record                    seq=1,774,287,970,947 id=96c30ea8cff53b47                        ip=127.0.0.1 udp=0 tcp=0
INFO [03-23|17:46:10.947] Started P2P networking                   self=enode://5fe8eff1eb8d940c7f9cd1e58419ae13e1bc480153bdfe62f18da593706b5fe598f754c0b6eac9cb8d13c859a02570c9a45492eb65534e8805f41a29aef02b39@127.0.0.1:0
WARN [03-23|17:46:10.948] Getting file info                        dir= error="stat : no such file or directory"
INFO [03-23|17:46:10.948] Started log indexer
TestBatchPosterL1SurplusMatchesBatchGasFlaky
Stack Traces | 0.560s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
panic: runtime error: invalid memory address or nil pointer dereference [recovered, repanicked]
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x2075e32]

goroutine 16 [running]:
testing.tRunner.func1.2({0x37d3e80, 0x61d69b0})
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1872 +0x237
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1875 +0x35b
panic({0x37d3e80?, 0x61d69b0?})
	/opt/hostedtoolcache/go/1.25.8/x64/src/runtime/panic.go:783 +0x132
github.com/offchainlabs/nitro/arbnode.(*InboxTracker).GetBatchCount(0x1115900?)
	/home/runner/work/nitro/nitro/arbnode/inbox_tracker.go:210 +0x12
github.com/offchainlabs/nitro/arbnode.(*InboxTracker).FindInboxBatchContainingMessage(0x0, 0x7)
	/home/runner/work/nitro/nitro/arbnode/inbox_tracker.go:225 +0x2f
github.com/offchainlabs/nitro/system_tests.TestBatchPosterL1SurplusMatchesBatchGasFlaky(0xc000588540)
	/home/runner/work/nitro/nitro/system_tests/batch_poster_test.go:838 +0x725
testing.tRunner(0xc000588540, 0x41a2fa8)
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1934 +0xea
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.25.8/x64/src/testing/testing.go:1997 +0x465
TestRedisProduceComplex/one_producer,_all_consumers_are_active
Stack Traces | 1.380s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=1072d163-5050-4a49-a28a-8f70a13360be �[36mmessageId�[0m=1774287732333-3
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=3e6834b6-24e9-40d6-a4fc-e3523f9555c8 �[36mmessageId�[0m=1774287732333-4
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=b052f853-2782-4893-ba54-c351a961f147 �[36mmessageId�[0m=1774287732333-5
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=ee7ce9b5-0282-4ab6-97b2-28de399f9663 �[36mmessageId�[0m=1774287732333-1
�[36mDEBUG�[0m[03-23|17:42:13.510] Redis stream consuming                   �[36mconsumer_id�[0m=a36eab5e-a579-4855-bf04-195222a97982 �[36mmessage_id�[0m=1774287732333-6
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: setting result                 �[36mcid�[0m=a36eab5e-a579-4855-bf04-195222a97982 �[36mmsgIdInStream�[0m=1774287732333-6  �[36mresultKeyInRedis�[0m=result-key:stream:5b1f15dc-af79-49a1-97e1-9f1b9298ab4b.1774287732333-6
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=692e0f16-6484-4e94-8441-5646172427a2 �[36mmessageId�[0m=1774287732333-2
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xack                           �[36mcid�[0m=a36eab5e-a579-4855-bf04-195222a97982 �[36mmessageId�[0m=1774287732333-6
�[36mDEBUG�[0m[03-23|17:42:13.510] Redis stream consuming                   �[36mconsumer_id�[0m=b52f2ac4-4e78-4bee-baee-534df33baca4 �[36mmessage_id�[0m=1774287732366-0
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: setting result                 �[36mcid�[0m=b52f2ac4-4e78-4bee-baee-534df33baca4 �[36mmsgIdInStream�[0m=1774287732366-0  �[36mresultKeyInRedis�[0m=result-key:stream:5b1f15dc-af79-49a1-97e1-9f1b9298ab4b.1774287732366-0
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xack                           �[36mcid�[0m=b52f2ac4-4e78-4bee-baee-534df33baca4 �[36mmessageId�[0m=1774287732366-0
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=a36eab5e-a579-4855-bf04-195222a97982 �[36mmessageId�[0m=1774287732333-6
�[36mDEBUG�[0m[03-23|17:42:13.510] consumer: xdel                           �[36mcid�[0m=b52f2ac4-4e78-4bee-baee-534df33baca4 �[36mmessageId�[0m=1774287732366-0
�[33mWARN �[0m[03-23|17:42:13.518] XClaimJustID returned empty response when indicating heartbeat �[33mmsgID�[0m=1774287732333-0
�[36mDEBUG�[0m[03-23|17:42:13.518] consumer: xdel                           �[36mcid�[0m=91bd8968-35f5-497f-a191-19c9b2a2a89a �[36mmessageId�[0m=1774287732332-5
�[36mDEBUG�[0m[03-23|17:42:13.551] checkResponses                           �[36mresponded�[0m=42 �[36merrored�[0m=0 �[36mchecked�[0m=100
�[36mDEBUG�[0m[03-23|17:42:13.561] redis producer: check responses starting
�[36mDEBUG�[0m[03-23|17:42:13.597] checkResponses                           �[36mresponded�[0m=58 �[36merrored�[0m=0 �[36mchecked�[0m=58
�[36mDEBUG�[0m[03-23|17:42:13.649] Error destroying a stream group          �[36merror�[0m="dial tcp 127.0.0.1:41215: connect: connection refused"
--- FAIL: TestRedisProduceComplex/one_producer,_all_consumers_are_active (1.38s)

📣 Thoughts on this report? Let Codecov know! | Powered by Codecov

suppliedGas := burner.GasLeft()
gasLeft := suppliedGas
info, asmMap, err := activateProgramInternal(program, codehash, wasm, page_limit, stylusVersion, arbosVersionForGas, debug, &gasLeft, runCtx.WasmTargets(), moduleActivationMandatory)
shouldAllowFallback := allowFallback.Load() && !runCtx.IsEthcall()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disable for anything unless IsExecutedOnChain()

Signed-off-by: Igor Braga <5835477+bragaigor@users.noreply.github.com>
@bragaigor bragaigor changed the title Disable cranelift fallback for eth_call Disable cranelift fallback for non-onchain execution modes Mar 23, 2026
@bragaigor bragaigor marked this pull request as ready for review March 23, 2026 17:31
@bragaigor bragaigor requested a review from tsahee March 23, 2026 17:31
@bragaigor bragaigor assigned tsahee and unassigned bragaigor Mar 23, 2026
Copy link
Copy Markdown
Contributor

@tsahee tsahee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tsahee tsahee enabled auto-merge March 23, 2026 17:43
@tsahee tsahee added this pull request to the merge queue Mar 23, 2026
Merged via the queue into master with commit fbf76c0 Mar 23, 2026
27 checks passed
@tsahee tsahee deleted the braga/dis-cranelift-eth-call branch March 23, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants