Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Panic when calling array_to_string on an empty array #11073

Closed
andrioni opened this issue Mar 7, 2022 · 0 comments · Fixed by #11074
Closed

Panic when calling array_to_string on an empty array #11073

andrioni opened this issue Mar 7, 2022 · 0 comments · Fixed by #11074
Labels
C-bug Category: something is broken

Comments

@andrioni
Copy link
Contributor

andrioni commented Mar 7, 2022

What version of Materialize are you using?

v0.22.1-dev (9611cc6)

How did you install Materialize?

Built from source

What was the issue?

Materialize panics when the following query is executed:

select array_to_string('{}'::int[], ' ');

This query was reduced from a query used by psql when running \d+ on a table.

Relevant log output

Full panic backtrace:


2022-03-07T12:31:10.305119Z ERROR panic: attempt to subtract with overflow
thread: coordinator
location: src/expr/src/scalar/func.rs:5129:18
version: 0.22.1-dev (9611cc69528eee6228fe17e931340b1bb91e5684)
backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/mod.rs:66:5
      backtrace::backtrace::trace
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/backtrace/mod.rs:53:14
   1: backtrace::capture::Backtrace::create
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/capture.rs:176:9
      backtrace::capture::Backtrace::new
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.64/src/capture.rs:140:22
   2: materialized::handle_panic
             at src/materialized/src/bin/materialized/main.rs:937:21
   3: core::ops::function::Fn::call
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:70:5
   4: std::panicking::rust_panic_with_hook
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:610:17
   5: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:500:13
   6: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:139:18
   7: rust_begin_unwind
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
   8: core::panicking::panic_fmt
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
   9: core::panicking::panic
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:48:5
  10: mz_expr::scalar::func::array_to_string
             at src/expr/src/scalar/func.rs:5129:18
  11: mz_expr::scalar::func::VariadicFunc::eval
             at src/expr/src/scalar/func.rs:5876:17
  12: mz_expr::scalar::MirScalarExpr::eval
             at src/expr/src/scalar/mod.rs:1015:60
  13: mz_expr::scalar::MirScalarExpr::reduce::{{closure}}
             at src/expr/src/scalar/mod.rs:290:36
  14: mz_expr::scalar::MirScalarExpr::reduce::{{closure}}
             at src/expr/src/scalar/mod.rs:610:34
  15: mz_expr::scalar::MirScalarExprVisitor::visit_mut_pre_post::{{closure}}
             at src/expr/src/scalar/mod.rs:1205:13
  16: stacker::maybe_grow
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
      mz_ore::stack::maybe_grow
             at src/ore/src/stack.rs:100:5
      mz_expr::scalar::MirScalarExprVisitor::visit_mut_pre_post
             at src/expr/src/scalar/mod.rs:1196:9
  17: mz_expr::scalar::MirScalarExpr::visit_mut_pre_post
             at src/expr/src/scalar/mod.rs:170:9
  18: mz_expr::scalar::MirScalarExpr::reduce
             at src/expr/src/scalar/mod.rs:298:13
  19: mz_transform::reduction::FoldConstants::action
             at src/transform/src/reduction.rs:159:21
  20: <mz_transform::reduction::FoldConstants as mz_transform::Transform>::transform::{{closure}}
             at src/transform/src/reduction.rs:44:13
  21: mz_expr::relation::MirRelationExprVisitor::try_visit_mut_post::{{closure}}
             at src/expr/src/relation/mod.rs:1627:13
  22: mz_ore::stack::CheckedRecursion::checked_recur::{{closure}}
             at src/ore/src/stack.rs:191:33
  23: stacker::maybe_grow
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
      mz_ore::stack::maybe_grow
             at src/ore/src/stack.rs:100:5
      mz_ore::stack::CheckedRecursion::checked_recur
             at src/ore/src/stack.rs:191:19
      mz_expr::relation::MirRelationExprVisitor::try_visit_mut_post
             at src/expr/src/relation/mod.rs:1625:9
  24: mz_expr::relation::MirRelationExpr::try_visit_mut_post
             at src/expr/src/relation/mod.rs:1266:9
  25: <mz_transform::reduction::FoldConstants as mz_transform::Transform>::transform
             at src/transform/src/reduction.rs:40:9
  26: <mz_transform::FuseAndCollapse as mz_transform::Transform>::transform
             at src/transform/src/lib.rs:230:13
  27: <mz_transform::Fixpoint as mz_transform::Transform>::transform
             at src/transform/src/lib.rs:135:21
  28: mz_transform::Optimizer::transform
             at src/transform/src/lib.rs:392:13
  29: mz_transform::Optimizer::optimize
             at src/transform/src/lib.rs:377:9
  30: mz_coord::coord::Coordinator::sequence_peek::{{closure}}
             at src/coord/src/coord.rs:2937:22
  31: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/future/mod.rs:84:19
  32: mz_coord::coord::Coordinator::sequence_plan::{{closure}}
             at src/coord/src/coord.rs:1664:63
  33: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/future/mod.rs:84:19
  34: mz_coord::coord::Coordinator::message_statement_ready::{{closure}}
             at src/coord/src/coord.rs:898:62
  35: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/future/mod.rs:84:19
  36: mz_coord::coord::Coordinator::serve::{{closure}}
             at src/coord/src/coord.rs:694:86
  37: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/future/mod.rs:84:19
  38: tokio::park::thread::CachedParkThread::block_on::{{closure}}
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/park/thread.rs:263:54
  39: tokio::coop::with_budget::{{closure}}
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/coop.rs:102:9
  40: std::thread::local::LocalKey<T>::try_with
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/thread/local.rs:412:16
  41: std::thread::local::LocalKey<T>::with
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/thread/local.rs:388:9
  42: tokio::coop::with_budget
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/coop.rs:95:5
      tokio::coop::budget
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/coop.rs:72:5
      tokio::park::thread::CachedParkThread::block_on
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/park/thread.rs:263:31
  43: tokio::runtime::enter::Enter::block_on
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/runtime/enter.rs:151:13
  44: tokio::runtime::handle::Handle::block_on
             at /Users/alessandro/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.17.0/src/runtime/handle.rs:355:9
  45: mz_coord::coord::serve::{{closure}}::{{closure}}
             at src/coord/src/coord.rs:4531:17
  46: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:123:18
  47: std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/thread/mod.rs:477:17
  48: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panic/unwind_safe.rs:271:9
  49: std::panicking::try::do_call
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:406:40
  50: <unknown>
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:441:2
  51: std::panicking::try
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:370:19
  52: std::panic::catch_unwind
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panic.rs:133:14
  53: std::thread::Builder::spawn_unchecked::{{closure}}
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/thread/mod.rs:476:30
  54: core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:227:5
  55: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/alloc/src/boxed.rs:1854:9
      <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/alloc/src/boxed.rs:1854:9
      std::sys::unix::thread::Thread::new::thread_start
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys/unix/thread.rs:108:17
  56: _pthread_jit_write_protect_np
@andrioni andrioni added the C-bug Category: something is broken label Mar 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: something is broken
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant