cassandra-rs
cassandra-rs copied to clipboard
invalid CQL queries cause a panic and program aborts
trafficstars
We should really be returning a Result instead I think
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
I'm assigning this to me, i'll see if I can recreate the issue.
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>