This repository was archived by the owner on Jan 22, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,24 @@ pub enum BuiltinFeatureTransition {
119119 } ,
120120}
121121
122+ // https://github.com/solana-labs/solana/pull/23233 added `BuiltinFeatureTransition`
123+ // to `Bank` which triggers https://github.com/rust-lang/rust/issues/92987 while
124+ // attempting to resolve `Sync` on `BankRc` in `AccountsBackgroundService::new` ala,
125+ //
126+ // query stack during panic:
127+ // #0 [evaluate_obligation] evaluating trait selection obligation `bank::BankRc: core::marker::Sync`
128+ // #1 [typeck] type-checking `accounts_background_service::<impl at runtime/src/accounts_background_service.rs:358:1: 520:2>::new`
129+ // #2 [typeck_item_bodies] type-checking all item bodies
130+ // #3 [analysis] running analysis passes on this crate
131+ // end of query stack
132+ //
133+ // Yoloing a `Sync` onto it avoids the auto trait evaluation and thus the ICE.
134+ //
135+ // We should remove this when upgrading to Rust 1.60.0, where the bug has been
136+ // fixed by https://github.com/rust-lang/rust/pull/93064
137+ unsafe impl Send for BuiltinFeatureTransition { }
138+ unsafe impl Sync for BuiltinFeatureTransition { }
139+
122140impl BuiltinFeatureTransition {
123141 pub fn to_action (
124142 & self ,
You can’t perform that action at this time.
0 commit comments