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

TiKV panic with error of Cannot cast Bytes scalar value into Int #29357

Closed
lilinghai opened this issue Nov 2, 2021 · 2 comments · Fixed by #29454
Closed

TiKV panic with error of Cannot cast Bytes scalar value into Int #29357

lilinghai opened this issue Nov 2, 2021 · 2 comments · Fixed by #29454
Assignees
Labels
affects-4.0 This bug affects 4.0.x versions. affects-5.0 This bug affects 5.0.x versions. affects-5.1 This bug affects 5.1.x versions. affects-5.2 This bug affects 5.2.x versions. component/tikv severity/critical type/bug This issue is a bug.

Comments

@lilinghai
Copy link
Contributor

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

create table t(`a` enum('y','b','Abc','null','1','2','0')) CHARSET=binary;
insert into t values("1");
SELECT count(*) from t where (null like 'a') = (case when cast('2015' as real) <=> round("1200","1") then a end);
-- exepct successfully , but got ERROR 9002 (HY000): TiKV server timeout
/*
explain SELECT count(*) from t where (null like 'a') = (case when cast('2015' as real) <=> round("1200","1") then a end);
+----------------------------+---------+-----------+---------------+--------------------------------+
| id                         | estRows | task      | access object | operator info                  |
+----------------------------+---------+-----------+---------------+--------------------------------+
| StreamAgg_10               | 1.00    | root      |               | funcs:count(1)->Column#3       |
| └─TableReader_17           | 0.80    | root      |               | data:Selection_16              |
|   └─Selection_16           | 0.80    | cop[tikv] |               | eq(NULL, case(0, rs.t.a))      |
|     └─TableFullScan_15     | 1.00    | cop[tikv] | table:t       | keep order:false, stats:pseudo |
+----------------------------+---------+-----------+---------------+--------------------------------+
*/

2. What did you expect to see? (Required)

successfully

3. What did you see instead (Required)

tikv panic log

[FATAL] [lib.rs:465] ["Cannot cast Bytes scalar value into Int"] [backtrace="   0: tikv_util::set_panic_hook::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tikv_util/src/lib.rs:464:18
   1: std::panicking::rust_panic_with_hook
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:626:17
   2: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:519:13
   3: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/sys_common/backtrace.rs:141:18
   4: rust_begin_unwind
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:515:5
   5: std::panicking::begin_panic_fmt
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:457:5
   6: <tidb_query_expr::types::function::ArgConstructor<A,E> as tidb_query_expr::types::function::Evaluator>::eval
      tidb_query_expr::impl_compare::compare_fn_meta::run
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_expr/src/impl_compare.rs:14:1
   7: tidb_query_expr::types::expr_eval::<impl tidb_query_expr::types::expr::RpnExpression>::eval_decoded
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_expr/src/types/expr_eval.rs:248:31
   8: tidb_query_expr::types::expr_eval::<impl tidb_query_expr::types::expr::RpnExpression>::eval
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_expr/src/types/expr_eval.rs:161:9
      tidb_query_executors::selection_executor::BatchSelectionExecutor<Src>::handle_src_result
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/selection_executor.rs:83:19
      <tidb_query_executors::selection_executor::BatchSelectionExecutor<Src> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/selection_executor.rs:182:25
      <tidb_query_common::execute_stats::WithSummaryCollector<C,T> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/interface.rs:108:22
   9: <alloc::boxed::Box<T> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/interface.rs:77:9
      tidb_query_executors::util::aggr_executor::AggregationExecutor<Src,I>::handle_next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/util/aggr_executor.rs:194:26
      <tidb_query_executors::util::aggr_executor::AggregationExecutor<Src,I> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/util/aggr_executor.rs:282:22
      <tidb_query_executors::simple_aggr_executor::BatchSimpleAggregationExecutor<Src> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/simple_aggr_executor.rs:36:9
      <tidb_query_common::execute_stats::WithSummaryCollector<C,T> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/interface.rs:108:22
  10: <alloc::boxed::Box<T> as tidb_query_executors::interface::BatchExecutor>::next_batch
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/interface.rs:77:9
      tidb_query_executors::runner::BatchExecutorsRunner<SS>::internal_handle_request
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/runner.rs:533:26
  11: tidb_query_executors::runner::BatchExecutorsRunner<SS>::handle_request::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_executors/src/runner.rs:415:41
      <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/mod.rs:80:19
      <tikv::coprocessor::dag::BatchDAGHandler as tikv::coprocessor::RequestHandler>::handle_request::__handle_request::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/coprocessor/dag/mod.rs:105:22
      <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/mod.rs:80:19
  12: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/future.rs:119:9
      <tikv::coprocessor::interceptors::deadline::DeadlineChecker<F> as core::future::future::Future>::poll
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/coprocessor/interceptors/deadline.rs:34:9
      <tikv::coprocessor::interceptors::tracker::Tracker<F> as core::future::future::Future>::poll
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/coprocessor/interceptors/tracker.rs:49:19
  13: <tikv::coprocessor::interceptors::concurrency_limiter::ConcurrencyLimiter<PF,F> as core::future::future::Future>::poll
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/coprocessor/interceptors/concurrency_limiter.rs:111:15
  14: tikv::coprocessor::endpoint::Endpoint<E>::handle_unary_request_impl::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/coprocessor/endpoint.rs:428:13
      <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/mod.rs:80:19
      <resource_metering::InTags<T> as core::future::future::Future>::poll
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/resource_metering/src/lib.rs:157:9
      tikv::read_pool::ReadPoolHandle::spawn_handle::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/read_pool.rs:145:27
      <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/mod.rs:80:19
  15: tikv::read_pool::ReadPoolHandle::spawn::{{closure}}
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/src/read_pool.rs:121:25
      <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/future/mod.rs:80:19
  16: <yatp::task::future::Runner as yatp::pool::runner::Runner>::handle
             at /rust/git/checkouts/yatp-e704b73c3ee279b6/0c477fb/src/task/future.rs:261:20
  17: <tikv_util::yatp_pool::YatpPoolRunner<T> as yatp::pool::runner::Runner>::handle
             at /home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tikv_util/src/yatp_pool/mod.rs:104:24
      <yatp::queue::multilevel::MultilevelRunner<R> as yatp::pool::runner::Runner>::handle
             at /rust/git/checkouts/yatp-e704b73c3ee279b6/0c477fb/src/queue/multilevel.rs:245:19
      yatp::pool::worker::WorkerThread<T,R>::run
             at /rust/git/checkouts/yatp-e704b73c3ee279b6/0c477fb/src/pool/worker.rs:48:13
      yatp::pool::builder::LazyBuilder<T>::build::{{closure}}
             at /rust/git/checkouts/yatp-e704b73c3ee279b6/0c477fb/src/pool/builder.rs:91:25
      std::sys_common::backtrace::__rust_begin_short_backtrace
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/sys_common/backtrace.rs:125:18
  18: std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/thread/mod.rs:476:17
      <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panic.rs:347:9
      std::panicking::try::do_call
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:401:40
      std::panicking::try
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panicking.rs:365:19
      std::panic::catch_unwind
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/panic.rs:434:14
      std::thread::Builder::spawn_unchecked::{{closure}}
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/thread/mod.rs:475:30
      core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/core/src/ops/function.rs:227:5
  19: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/alloc/src/boxed.rs:1572:9
      <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/alloc/src/boxed.rs:1572:9
      std::sys::unix::thread::Thread::new::thread_start
             at /rustc/2faabf579323f5252329264cc53ba9ff803429a3/library/std/src/sys/unix/thread.rs:91:17
  20: start_thread
  21: clone
"] [location=/home/jenkins/agent/workspace/build_tikv_multi_branch_master/tikv/components/tidb_query_datatype/src/codec/data_type/mod.rs:322] [thread_name=unified-read-pool-28]

4. What is your TiDB version? (Required)

Release Version: v5.3.0-alpha-1296-g01e4bdd72
Edition: Community
Git Commit Hash: 01e4bdd
Git Branch: master
UTC Build Time: 2021-11-01 11:05:32
GoVersion: go1.16.4
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false

@aytrack
Copy link
Contributor

aytrack commented Nov 3, 2021

TiDB v4.0.15, v5.0.4 has a different result

ysql root@127.0.0.1:test> create table t(`a` enum('y','b','Abc','null','1','2','0')) CHARSET=binary;
                       ->  insert into t values("1");
                       ->  SELECT count(*) from t where (null like 'a') = (case when cast('2015' as real) <=> round("1200","1") then a end);
Query OK, 0 rows affected
Time: 0.092s

Query OK, 1 row affected
Time: 0.013s
(1105, 'baseBuiltinFunc.vecEvalInt() should never be called, please contact the TiDB team for help')
mysql root@127.0.0.1:test>

@github-actions
Copy link

github-actions bot commented Nov 5, 2021

Please check whether the issue should be labeled with 'affects-x.y' or 'fixes-x.y.z', and then remove 'needs-more-info' label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-4.0 This bug affects 4.0.x versions. affects-5.0 This bug affects 5.0.x versions. affects-5.1 This bug affects 5.1.x versions. affects-5.2 This bug affects 5.2.x versions. component/tikv severity/critical type/bug This issue is a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants