glaredb
glaredb copied to clipboard
Finished pipeline inadvertantly polled
Describe the bug
test [slt_s3_public/multi] slt/s3/public/csv_simple.slt ... ok
---- PANIC ----
Info: panicked at /home/runner/work/glaredb/glaredb/crates/glaredb_core/src/execution/partition_pipeline.rs:122:14:
poll_execute to be called on pipeline that hasn't completed
Possibly woken more than once. We might need to guard against that and just return early if no more work is to be done.
To Reproduce
No easily reproducible, but failed in CI here: https://github.com/GlareDB/glaredb/actions/runs/14369999587/job/40291175844?pr=3616
Expected behavior
We should never panic here.
Another failure: https://github.com/GlareDB/glaredb/actions/runs/14434060685/job/40472353293?pr=3647
https://github.com/GlareDB/glaredb/blob/main/crates/glaredb_http/src/handle.rs#L102-L118
Not fixed
test [slt_http/multi] slt/http/read_csv_http.slt ... ok
---- PANIC ----
Info: panicked at /home/runner/work/glaredb/glaredb/crates/glaredb_core/src/execution/partition_pipeline.rs:122:14:
poll_execute to be called on pipeline that hasn't completed
Backtrace: 0: glaredb_slt::run::{{closure}}
at /home/runner/work/glaredb/glaredb/crates/glaredb_slt/src/lib.rs:99:25
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1990:9
2: std::panicking::rust_panic_with_hook
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:839:13
3: std::panicking::begin_panic_handler::{{closure}}
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:704:13
4: std::sys::backtrace::__rust_end_short_backtrace
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:168:18
5: rust_begin_unwind
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:695:5
6: core::panicking::panic_fmt
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:75:14
7: core::panicking::panic_display
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:261:5
8: core::option::expect_failed
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/option.rs:2024:5
9: core::option::Option<T>::expect
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/option.rs:933:21
10: glaredb_core::execution::partition_pipeline::ExecutablePartitionPipeline::poll_execute
at /home/runner/work/glaredb/glaredb/crates/glaredb_core/src/execution/partition_pipeline.rs:119:20
11: glaredb_rt_native::threaded::task::PartitionPipelineTask::execute
at /home/runner/work/glaredb/glaredb/crates/glaredb_rt_native/src/threaded/task.rs:57:15
12: <glaredb_rt_native::threaded::task::PartitionPipelineWaker as alloc::task::Wake>::wake_by_ref::{{closure}}
at /home/runner/work/glaredb/glaredb/crates/glaredb_rt_native/src/threaded/task.rs:93:23
13: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panic/unwind_safe.rs:272:9
14: std::panicking::try::do_call
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:587:40
15: __rust_try
16: std::panicking::try
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:550:19
17: std::panic::catch_unwind
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panic.rs:358:14
18: rayon_core::unwind::halt_unwinding
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/unwind.rs:17:5
19: rayon_core::registry::Registry::catch_unwind
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:367:27
20: rayon_core::spawn::spawn_job::{{closure}}
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/spawn/mod.rs:97:13
21: <rayon_core::job::HeapJob<BODY> as rayon_core::job::Job>::execute
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/job.rs:169:9
22: rayon_core::job::JobRef::execute
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/job.rs:64:9
23: rayon_core::registry::WorkerThread::execute
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:860:9
24: rayon_core::registry::WorkerThread::wait_until_cold
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:794:21
25: rayon_core::registry::WorkerThread::wait_until
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:769:13
26: rayon_core::registry::WorkerThread::wait_until_out_of_work
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:818:9
27: rayon_core::registry::main_loop
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:923:5
28: rayon_core::registry::ThreadBuilder::run
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:53:18
29: <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn::{{closure}}
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.12.1/src/registry.rs:98:20
30: std::sys::backtrace::__rust_begin_short_backtrace
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:152:18
31: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/thread/mod.rs:559:17
32: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panic/unwind_safe.rs:272:9
33: std::panicking::try::do_call
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:587:40
34: __rust_try
35: std::panicking::try
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:550:19
36: std::panic::catch_unwind
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panic.rs:358:14
37: std::thread::Builder::spawn_unchecked_::{{closure}}
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/thread/mod.rs:557:30
38: core::ops::function::FnOnce::call_once{{vtable.shim}}
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/ops/function.rs:250:5
39: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9
40: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9
41: std::sys::pal::unix::thread::Thread::new::thread_start
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/pal/unix/thread.rs:106:17
42: <unknown>
43: <unknown>
error: test failed, to rerun pass `-p test_bin --test integration_slt`