Summary
Running this script (ex6.py in the Bash examples below):
import threading
import time
def runner():
print('runner done')
threading.Thread(target=runner).start()
time.sleep(1)
print('main done')
results in:
runner done
thread '<unnamed>' (453342) panicked at crates/vm/src/vm/thread.rs:451:13:
push_thread_frame called without initialized thread slot
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
main done
Expected
No panic or other errors; e.g., running with Python 3.14.4 as sanity check:
$ python ex6.py
runner done
main done
Detail
Python version:
$ python -V
Python 3.14.4
$ python ex6.py
runner done
main done
Rust, RustPython, and system info:
$ rustc --version
rustc 1.95.0 (59807616e 2026-04-14)
$ uname -a
Linux rory-lenovo 6.12.74+deb13+1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.74-2 (2026-03-08) x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie
$ git log -1 --format=%H
e10a27b1aef0c220ad704df137928094ebbd910b
$ cargo run -- ex6.py
warning: /home/roryy/src/RustPython/crates/stdlib/Cargo.toml: unused manifest key: dependencies.libz-sys.package
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s
Running `target/debug/rustpython ex6.py`
runner done
thread '<unnamed>' (453342) panicked at crates/vm/src/vm/thread.rs:451:13:
push_thread_frame called without initialized thread slot
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
main done
Full backtrace
Full backtrace
$ RUST_BACKTRACE=full cargo run -- ex6.py
warning: /home/roryy/src/RustPython/crates/stdlib/Cargo.toml: unused manifest key: dependencies.libz-sys.package
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.16s
Running `target/debug/rustpython ex6.py`
runner done
thread '<unnamed>' (453372) panicked at crates/vm/src/vm/thread.rs:451:13:
push_thread_frame called without initialized thread slot
stack backtrace:
0: 0x558c814310da - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::libunwind::trace
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x558c814310da - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::trace_unsynchronized::<std[e28293b1aa0f68bd]::sys::backtrace::_print_fmt::{closure#1}>
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x558c814310da - std[e28293b1aa0f68bd]::sys::backtrace::_print_fmt
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:74:9
3: 0x558c814310da - <<std[e28293b1aa0f68bd]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c1f1a4ba060b9bfa]::fmt::Display>::fmt
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:44:26
4: 0x558c8144c2ea - <core[c1f1a4ba060b9bfa]::fmt::rt::Argument>::fmt
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/rt.rs:152:76
5: 0x558c8144c2ea - core[c1f1a4ba060b9bfa]::fmt::write
6: 0x558c814382c2 - std[e28293b1aa0f68bd]::io::default_write_fmt::<std[e28293b1aa0f68bd]::sys::stdio::unix::Stderr>
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:639:11
7: 0x558c814382c2 - <std[e28293b1aa0f68bd]::sys::stdio::unix::Stderr as std[e28293b1aa0f68bd]::io::Write>::write_fmt
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:1994:13
8: 0x558c81416f8f - <std[e28293b1aa0f68bd]::sys::backtrace::BacktraceLock>::print
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:47:9
9: 0x558c81416f8f - std[e28293b1aa0f68bd]::panicking::default_hook::{closure#0}
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:292:27
10: 0x558c8142b001 - std[e28293b1aa0f68bd]::panicking::default_hook
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:319:9
11: 0x558c8142b27b - std[e28293b1aa0f68bd]::panicking::panic_with_hook
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:825:13
12: 0x558c8141707a - std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0}
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:691:13
13: 0x558c8140e4b9 - std[e28293b1aa0f68bd]::sys::backtrace::__rust_end_short_backtrace::<std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0}, !>
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:182:18
14: 0x558c81417d3d - __rustc[b7974e8690430dd9]::rust_begin_unwind
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:689:5
15: 0x558c8144cc7c - core[c1f1a4ba060b9bfa]::panicking::panic_fmt
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:80:14
16: 0x558c7f9ca54c - rustpython_vm::vm::thread::push_thread_frame::{{closure}}::h9a55a30508c74d73
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:451:13
17: 0x558c7f988108 - std::thread::local::LocalKey<T>::try_with::h3eb39a29d948c305
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
18: 0x558c7f986a84 - std::thread::local::LocalKey<T>::with::haa3e210cdae4f4ae
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
19: 0x558c804e6e45 - rustpython_vm::vm::thread::push_thread_frame::h6ecd2a602b90a6ad
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:447:25
20: 0x558c8064e858 - rustpython_vm::vm::VirtualMachine::with_frame_impl::{{closure}}::hce72d59efaabb717
at /home/roryy/src/RustPython/crates/vm/src/vm/mod.rs:1597:13
21: 0x558c8064a938 - rustpython_vm::vm::VirtualMachine::with_recursion::h7aaf960d17ec0007
at /home/roryy/src/RustPython/crates/vm/src/vm/mod.rs:1564:9
22: 0x558c8064dfdf - rustpython_vm::vm::VirtualMachine::with_frame_impl::hfb9ad1838e2f963d
at /home/roryy/src/RustPython/crates/vm/src/vm/mod.rs:1589:14
23: 0x558c80636659 - rustpython_vm::vm::VirtualMachine::with_frame::h5aa392b2b8eab6da
at /home/roryy/src/RustPython/crates/vm/src/vm/mod.rs:1572:14
24: 0x558c8008a353 - rustpython_vm::vm::VirtualMachine::run_frame::hadfdd6d19ac6ba8b
at /home/roryy/src/RustPython/crates/vm/src/vm/mod.rs:1206:20
25: 0x558c8008a353 - rustpython_vm::builtins::function::<impl rustpython_vm::object::core::Py<rustpython_vm::builtins::function::PyFunction>>::invoke_with_locals::hd560793cc4f49ab4
at /home/roryy/src/RustPython/crates/vm/src/builtins/function.rs:600:33
26: 0x558c7fa7bb83 - rustpython_vm::builtins::function::<impl rustpython_vm::object::core::Py<rustpython_vm::builtins::function::PyFunction>>::invoke::hb2f14bd118523189
at /home/roryy/src/RustPython/crates/vm/src/builtins/function.rs:614:14
27: 0x558c7fa7bb83 - <rustpython_vm::builtins::function::PyFunction as rustpython_vm::types::slot::Callable>::call::hb01d88448a6e355a
at /home/roryy/src/RustPython/crates/vm/src/builtins/function.rs:1095:14
28: 0x558c803b504c - rustpython_vm::types::slot::Callable::slot_call::h73b1d41c4f85526e
at /home/roryy/src/RustPython/crates/vm/src/types/slot.rs:1716:9
29: 0x558c801bb523 - rustpython_vm::protocol::callable::PyCallable::invoke::h239bd01fec5ed8ae
at /home/roryy/src/RustPython/crates/vm/src/protocol/callable.rs:78:20
30: 0x558c80099169 - rustpython_vm::protocol::callable::<impl rustpython_vm::object::core::PyObject>::call_with_args::hf69f9126d932a6b1
at /home/roryy/src/RustPython/crates/vm/src/protocol/callable.rs:34:18
31: 0x558c80cbe21d - rustpython_vm::protocol::callable::<impl rustpython_vm::object::core::PyObject>::call::hc5fcc8cea075e08a
at /home/roryy/src/RustPython/crates/vm/src/protocol/callable.rs:23:14
32: 0x558c80b7ad59 - rustpython_vm::object::core::WeakRefList::clear::{{closure}}::h8abbfce39140754a
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:704:28
33: 0x558c7f9ccb33 - rustpython_vm::vm::thread::with_vm::{{closure}}::{{closure}}::h0dcfccc8ed7f7be7
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:611:36
34: 0x558c7f9c8cde - rustpython_vm::vm::thread::set_current_vm::{{closure}}::h749b486a8111273f
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:107:9
35: 0x558c7f989721 - std::thread::local::LocalKey<T>::try_with::h77a82125cd80ee40
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
36: 0x558c7f985fcf - std::thread::local::LocalKey<T>::with::h3f3f9419f30342ca
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
37: 0x558c7f9c8964 - rustpython_vm::vm::thread::set_current_vm::h94fe2d1a90982e7d
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:102:14
38: 0x558c7f9cbd69 - rustpython_vm::vm::thread::with_vm::{{closure}}::h0bc2a9f8d3584293
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:611:14
39: 0x558c7f987721 - std::thread::local::LocalKey<T>::try_with::h0e49d9f88738f7c7
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
40: 0x558c7f985ea9 - std::thread::local::LocalKey<T>::with::h351c64da86e936e1
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
41: 0x558c7f9cba52 - rustpython_vm::vm::thread::with_vm::h1238fac720c54d50
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:597:14
42: 0x558c8007005d - rustpython_vm::object::core::WeakRefList::clear::hab824a1bf21d8534
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:703:13
43: 0x558c80b83d77 - rustpython_vm::object::core::PyObject::drop_slow_inner::h0f2225086edac94a
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1697:17
44: 0x558c80b83d77 - rustpython_vm::object::core::default_dealloc::h396fec5c2fa0a7fe
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:160:30
45: 0x558c80077e60 - rustpython_vm::object::core::PyObject::drop_slow::h3f712db8da39d909
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1707:18
46: 0x558c7ff89b77 - <rustpython_vm::object::core::PyObjectRef as core::ops::drop::Drop>::drop::h13a640b305c7947c
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1891:22
47: 0x558c7ff6588a - core::ptr::drop_in_place<rustpython_vm::object::core::PyObjectRef>::ha67c54f8f224a3aa
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:805:1
48: 0x558c7ff69f47 - core::ptr::drop_in_place<rustpython_vm::builtins::function::PyBoundMethod>::h089d2e4d01acebb4
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:805:1
49: 0x558c7ff46d40 - core::ptr::drop_in_place<rustpython_vm::object::core::PyInner<rustpython_vm::builtins::function::PyBoundMethod>>::h364c8cbce21fc991
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:805:1
50: 0x558c80c944a9 - rustpython_vm::object::core::PyInner<T>::dealloc::hf1fbc9b2ae9c722b
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1032:17
51: 0x558c80b8734d - rustpython_vm::object::core::default_dealloc::h485170c14d6fb585
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:213:18
52: 0x558c80077e60 - rustpython_vm::object::core::PyObject::drop_slow::h3f712db8da39d909
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1707:18
53: 0x558c7ff89b77 - <rustpython_vm::object::core::PyObjectRef as core::ops::drop::Drop>::drop::h13a640b305c7947c
at /home/roryy/src/RustPython/crates/vm/src/object/core.rs:1891:22
54: 0x558c7ff6588a - core::ptr::drop_in_place<rustpython_vm::object::core::PyObjectRef>::ha67c54f8f224a3aa
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:805:1
55: 0x558c7ff686db - core::ptr::drop_in_place<rustpython_vm::function::protocol::ArgCallable>::h120663b694dfcff5
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:805:1
56: 0x558c801ae9d4 - rustpython_vm::stdlib::_thread::_thread::start_joinable_thread::{{closure}}::h34f8a3c96ee45ced
at /home/roryy/src/RustPython/crates/vm/src/stdlib/_thread.rs:1713:13
57: 0x558c7f9cac4c - rustpython_vm::vm::thread::ThreadedVirtualMachine::run::{{closure}}::h70750d855805159b
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:655:25
58: 0x558c7f9c8b4d - rustpython_vm::vm::thread::set_current_vm::{{closure}}::h0b0cdf12c10a6381
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:107:9
59: 0x558c7f98b006 - std::thread::local::LocalKey<T>::try_with::hbe260099263bf5fc
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
60: 0x558c7f985f4f - std::thread::local::LocalKey<T>::with::h389ee21345df2ff3
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
61: 0x558c7f9c89de - rustpython_vm::vm::thread::set_current_vm::hd77e69f1d5dd6f73
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:102:14
62: 0x558c7f9ccf66 - rustpython_vm::vm::thread::enter_vm::hb02bd28993050422
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:132:5
63: 0x558c7f9caacc - rustpython_vm::vm::thread::ThreadedVirtualMachine::run::h445959a5464ea962
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:655:9
64: 0x558c7f9ca9db - rustpython_vm::vm::thread::ThreadedVirtualMachine::make_spawn_func::{{closure}}::h77d674b8d9a47679
at /home/roryy/src/RustPython/crates/vm/src/vm/thread.rs:635:22
65: 0x558c80b1f8b7 - std::sys::backtrace::__rust_begin_short_backtrace::h4fc065878f08b018
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:166:18
66: 0x558c7fd9717f - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::he687faa22c12cd6c
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:91:13
67: 0x558c804ae2e4 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4b5560f0771cb912
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
68: 0x558c809d4674 - std::panicking::catch_unwind::do_call::h3c1aebc65ce5a775
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
69: 0x558c7fd97dab - __rust_try
70: 0x558c7fd96605 - std::panicking::catch_unwind::h6c8b91867e3dac8f
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
71: 0x558c7fd96605 - std::panic::catch_unwind::h2c48a65fb5ddee86
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
72: 0x558c7fd96605 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h2e6d34f44831ee59
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/lifecycle.rs:89:26
73: 0x558c7fec241f - core::ops::function::FnOnce::call_once{{vtable.shim}}::h3d70846e68ab052d
at /home/roryy/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
74: 0x558c8143035f - <alloc[fdfd2bd8633a6659]::boxed::Box<dyn core[c1f1a4ba060b9bfa]::ops::function::FnOnce<(), Output = ()> + core[c1f1a4ba060b9bfa]::marker::Send> as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/boxed.rs:2240:9
75: 0x558c8143035f - <std[e28293b1aa0f68bd]::sys::thread::unix::Thread>::new::thread_start
at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/thread/unix.rs:118:17
76: 0x7f0d0dc27b7b - <unknown>
77: 0x7f0d0dca57f8 - <unknown>
78: 0x0 - <unknown>
main done
Summary
Running this script (
ex6.pyin the Bash examples below):results in:
Expected
No panic or other errors; e.g., running with Python 3.14.4 as sanity check:
Detail
Python version:
Rust, RustPython, and system info:
Full backtrace
Full backtrace