Stream: git-wasmtime

Topic: wasmtime / issue #13474 Type registry debug assertion cre...


view this post on Zulip Wasmtime GitHub notifications bot (May 24 2026 at 15:44):

alexcrichton opened issue #13474:

This input:

#[test]
fn fuzz_bug() -> Result<()> {
    let mut config = Config::new();
    config.strategy(Strategy::Winch);
    let engine = Engine::new(&config)?;
    let mut store = Store::new(&engine, ());
    let fty = FuncType::new(&engine, [], []);
    let tty1 = TagType::new(fty.clone());
    Tag::new(&mut store, &tty1.clone())?;
    Ok(())
}

fails with:

 thread 'tags::fuzz_bug' (3789926) panicked at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:233:5:                                                                                             
 panic in a destructor during cleanup                                                                                                                                                                                           
 thread caused non-unwinding panic. aborting.                                                                                                                                                                                   
 thread 'tags::fuzz_bug' (3789926) panicked at crates/wasmtime/src/runtime/type_registry.rs:1132:13:                                                                                                                            
 assertion failed: entry.0.shared_type_indices.iter().all(|ty|                                                                                                                                                                  
         {                                                                                                                                                                                                                      
             let id = shared_type_index_to_slab_id(*ty);                                                                                                                                                                        
             let sub_ty = self.types[id].as_ref().unwrap();                                                                                                                                                                     
             assert!(!sub_ty.composite_type.shared);                                                                                                                                                                            
             matches!(&sub_ty.composite_type.inner,                                                                                                                                                                             
                 wasmtime_environ::WasmCompositeInnerType::Func(_))                                                                                                                                                             
         })                                                                                                                                                                                                                     
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace                                                                                                                                                  
                                                                                                                                                                                                                                
 thread 'tags::fuzz_bug' (3789926) panicked at crates/wasmtime/src/sync_std.rs:51:23:                                                                                                                                           
 called `Result::unwrap()` on an `Err` value: PoisonError { .. }                                                                                                                                                                
 stack backtrace:                                                                                                                                                                                                               
...

cc @fitzgen

view this post on Zulip Wasmtime GitHub notifications bot (May 24 2026 at 15:44):

alexcrichton added the fuzz-bug label to Issue #13474.

view this post on Zulip Wasmtime GitHub notifications bot (May 24 2026 at 15:44):

alexcrichton added the wasm-proposal:gc label to Issue #13474.

view this post on Zulip Wasmtime GitHub notifications bot (May 27 2026 at 14:49):

fitzgen closed issue #13474:

This input:

#[test]
fn fuzz_bug() -> Result<()> {
    let mut config = Config::new();
    config.strategy(Strategy::Winch);
    let engine = Engine::new(&config)?;
    let mut store = Store::new(&engine, ());
    let fty = FuncType::new(&engine, [], []);
    let tty1 = TagType::new(fty.clone());
    Tag::new(&mut store, &tty1.clone())?;
    Ok(())
}

fails with:

 thread 'tags::fuzz_bug' (3789926) panicked at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:233:5:                                                                                             
 panic in a destructor during cleanup                                                                                                                                                                                           
 thread caused non-unwinding panic. aborting.                                                                                                                                                                                   
 thread 'tags::fuzz_bug' (3789926) panicked at crates/wasmtime/src/runtime/type_registry.rs:1132:13:                                                                                                                            
 assertion failed: entry.0.shared_type_indices.iter().all(|ty|                                                                                                                                                                  
         {                                                                                                                                                                                                                      
             let id = shared_type_index_to_slab_id(*ty);                                                                                                                                                                        
             let sub_ty = self.types[id].as_ref().unwrap();                                                                                                                                                                     
             assert!(!sub_ty.composite_type.shared);                                                                                                                                                                            
             matches!(&sub_ty.composite_type.inner,                                                                                                                                                                             
                 wasmtime_environ::WasmCompositeInnerType::Func(_))                                                                                                                                                             
         })                                                                                                                                                                                                                     
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace                                                                                                                                                  
                                                                                                                                                                                                                                
 thread 'tags::fuzz_bug' (3789926) panicked at crates/wasmtime/src/sync_std.rs:51:23:                                                                                                                                           
 called `Result::unwrap()` on an `Err` value: PoisonError { .. }                                                                                                                                                                
 stack backtrace:                                                                                                                                                                                                               
...

cc @fitzgen


Last updated: Jun 01 2026 at 09:49 UTC