glaredb icon indicating copy to clipboard operation
glaredb copied to clipboard

Finished pipeline inadvertantly polled

Open scsmithr opened this issue 10 months ago • 3 comments

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.

scsmithr avatar Apr 10 '25 01:04 scsmithr

Another failure: https://github.com/GlareDB/glaredb/actions/runs/14434060685/job/40472353293?pr=3647

scsmithr avatar Apr 13 '25 22:04 scsmithr

https://github.com/GlareDB/glaredb/blob/main/crates/glaredb_http/src/handle.rs#L102-L118

scsmithr avatar Apr 14 '25 00:04 scsmithr

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`

scsmithr avatar Apr 21 '25 16:04 scsmithr