cassandra-rs icon indicating copy to clipboard operation
cassandra-rs copied to clipboard

invalid CQL queries cause a panic and program aborts

Open rustyrazorblade opened this issue 9 years ago • 3 comments
trafficstars

We should really be returning a Result instead I think

rustyrazorblade avatar Jun 10 '16 19:06 rustyrazorblade

Is this still a problem anywhere? blocking for a future returns Result<CassResult, CassError> I just modified basic.rs to have a garbage SQL statement, and it seems correct. Any types of statements not handled correctly

tupshin avatar Dec 04 '16 22:12 tupshin

I'm assigning this to me, i'll see if I can recreate the issue.

rustyrazorblade avatar Dec 05 '16 05:12 rustyrazorblade

I've been able to hit this (or, at least, something with the same symptoms) on master by editing the table name in basic.rs to be table (which is invalid syntax). Trace follows:

$ RUST_BACKTRACE=1 cargo run --bin basic
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/basic`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(SERVER_SYNTAX_ERROR(CASS_ERROR_SERVER_WRITE_FAILURE), State { next_error: None, backtrace: Some(stack backtrace:
   0:     0x7f59a5d2be91 - backtrace::backtrace::libunwind::trace
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.0/src/backtrace/mod.rs:90
                         - backtrace::backtrace::trace<closure>
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.0/src/backtrace/mod.rs:42
   1:     0x7f59a5d2ce98 - backtrace::capture::{{impl}}::new
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.0/src/lib.rs:101
   2:     0x7f59a5d23d51 - error_chain::make_backtrace
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.7.2/src/lib.rs:411
   3:     0x7f59a5d23e07 - error_chain::{{impl}}::default
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.7.2/src/lib.rs:462
   4:     0x7f59a5d1872b - cassandra_sys::error::{{impl}}::from_kind
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/cassandra-sys-0.8.7/src/error.rs:6
   5:     0x7f59a5d18921 - cassandra_sys::error::{{impl}}::from
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/cassandra-sys-0.8.7/src/error.rs:6
   6:     0x7f59a5bdf091 - core::convert::{{impl}}::into<cassandra_sys::error::ErrorKind,cassandra_sys::error::Error>
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/convert.rs:271
   7:     0x7f59a5bc5b99 - cassandra_sys::error::{{impl}}::to_result<&str>
                        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/cassandra-sys-0.8.7/src/error.rs:200
   8:     0x7f59a5be6245 - cassandra::cassandra::future::{{impl}}::error_code
                        at /home/cassandra-rs/src/cassandra/future.rs:156
   9:     0x7f59a5be6137 - cassandra::cassandra::future::{{impl}}::wait
                        at /home/cassandra-rs/src/cassandra/future.rs:143
  10:     0x7f59a5bb5dba - basic::main
                        at /home/cassandra-rs/src/examples/basic.rs:73
  11:     0x7f59a5d451ba - panic_unwind::__rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libpanic_unwind/lib.rs:98
  12:     0x7f59a5d3eda6 - std::panicking::try<(),fn()>
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:434
                         - std::panic::catch_unwind<fn(),()>
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panic.rs:351
                         - std::rt::lang_start
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/rt.rs:57
  13:     0x7f59a5bb6592 - main
  14:     0x7f59a4205b14 - __libc_start_main
  15:     0x7f59a5ba5988 - <unknown>
  16:                0x0 - <unknown>) })', /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/result.rs:837
stack backtrace:
   1:     0x7f59a5d3c4ea - std::sys::imp::backtrace::tracing::imp::write::h3188f035833a2635
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x7f59a5d3e45f - std::panicking::default_hook::{{closure}}::h6385b6959a2dd25b
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:349
   3:     0x7f59a5d3e05e - std::panicking::default_hook::he4f3b61755d7fa95
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:365
   4:     0x7f59a5d3e8a7 - std::panicking::rust_panic_with_hook::hf00b8130f73095ec
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:553
   5:     0x7f59a5d3e6e4 - std::panicking::begin_panic::h6227f62cb2cdaeb4
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:515
   6:     0x7f59a5d3e659 - std::panicking::begin_panic_fmt::h173eadd80ae64bec
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:499
   7:     0x7f59a5d3e5e7 - rust_begin_unwind
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:475
   8:     0x7f59a5d6ee0d - core::panicking::panic_fmt::h3b2d1e30090844ff
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/panicking.rs:69
   9:     0x7f59a5bdde95 - core::result::unwrap_failed::h6f1089a4164b68db
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/macros.rs:29
  10:     0x7f59a5bd55cb - <core::result::Result<T, E>>::unwrap::hddf0ca9c49ea9914
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/result.rs:737
  11:     0x7f59a5be6263 - cassandra::cassandra::future::ResultFuture::error_code::h9643cdac73af0417
                        at /home/cassandra-rs/src/cassandra/future.rs:156
  12:     0x7f59a5be6137 - cassandra::cassandra::future::ResultFuture::wait::hbeb621ceb291ca3a
                        at /home/cassandra-rs/src/cassandra/future.rs:143
  13:     0x7f59a5bb5dba - basic::main::h4ff842f26da5028c
                        at /home/cassandra-rs/src/examples/basic.rs:73
  14:     0x7f59a5d451ba - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libpanic_unwind/lib.rs:98
  15:     0x7f59a5d3eda6 - std::rt::lang_start::h65647f6e36cffdae
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:434
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panic.rs:351
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/rt.rs:57
  16:     0x7f59a5bb6592 - main
  17:     0x7f59a4205b14 - __libc_start_main
  18:     0x7f59a5ba5988 - <unknown>
  19:                0x0 - <unknown>

BenjaminGill-Metaswitch avatar Feb 16 '17 13:02 BenjaminGill-Metaswitch