Omega359 opened a new issue, #13775:
URL: https://github.com/apache/datafusion/issues/13775
### Describe the bug
Seeing this when testing the new sqlite tests in sqllogictest against main.
It occurs with the select4.slt test file only. backtrace below:
```
thread 'tokio-runtime-worker' panicked at
datafusion/common/src/stats.rs:151:84:
attempt to multiply with overflow
stack backtrace:
0: rust_begin_unwind
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:662:5
1: core::panicking::panic_fmt
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:74:14
2: core::panicking::panic_const::panic_const_mul_overflow
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:181:21
3: <usize as core::ops::arith::Mul>::mul
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/arith.rs:342:45
4: <&usize as core::ops::arith::Mul<&usize>>::mul
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/internal_macros.rs:58:17
5: datafusion_common::stats::Precision<usize>::multiply
at /apache_datafusion/datafusion/common/src/stats.rs:151:84
6: datafusion_physical_plan::joins::cross_join::stats_cartesian_product
at
/apache_datafusion/datafusion/physical-plan/src/joins/cross_join.rs:340:27
7: <datafusion_physical_plan::joins::cross_join::CrossJoinExec as
datafusion_physical_plan::execution_plan::ExecutionPlan>::statistics
at
/apache_datafusion/datafusion/physical-plan/src/joins/cross_join.rs:322:12
8:
datafusion::physical_optimizer::enforce_distribution::get_repartition_requirement_status
at
/apache_datafusion/datafusion/core/src/physical_optimizer/enforce_distribution.rs:1103:49
9:
datafusion::physical_optimizer::enforce_distribution::ensure_distribution
at
/apache_datafusion/datafusion/core/src/physical_optimizer/enforce_distribution.rs:1197:9
10:
<datafusion::physical_optimizer::enforce_distribution::EnforceDistribution as
datafusion_physical_optimizer::optimizer::PhysicalOptimizerRule>::optimize::{{closure}}
at
/apache_datafusion/datafusion/core/src/physical_optimizer/enforce_distribution.rs:217:17
11: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for
&mut F>::call_once
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/function.rs:305:13
12: datafusion_common::tree_node::Transformed<T>::transform_parent
at /apache_datafusion/datafusion/common/src/tree_node.rs:764:44
13:
datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:265:13
14: stacker::maybe_grow
at
/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.17/src/lib.rs:55:9
15: datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl
at /apache_datafusion/datafusion/common/src/tree_node.rs:260:9
16:
datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl::{{closure}}::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:265:35
17: <I as
datafusion_common::tree_node::TreeNodeIterator>::map_until_stop_and_collect::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:1125:17
18: core::iter::adapters::map::map_try_fold::{{closure}}
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/map.rs:95:28
19: <alloc::vec::into_iter::IntoIter<T,A> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/into_iter.rs:346:25
20: <core::iter::adapters::map::Map<I,F> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/map.rs:121:9
21: <core::iter::adapters::GenericShunt<I,R> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/mod.rs:191:9
22: <I as
alloc::vec::in_place_collect::SpecInPlaceCollect<T,I>>::collect_in_place
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:378:13
23: alloc::vec::in_place_collect::from_iter_in_place
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:269:9
24: alloc::vec::in_place_collect::<impl
alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:245:9
25: <alloc::vec::Vec<T> as
core::iter::traits::collect::FromIterator<T>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/mod.rs:2985:9
26: core::iter::traits::iterator::Iterator::collect
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/traits/iterator.rs:2000:9
27: <core::result::Result<V,E> as
core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}}
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/result.rs:1958:51
28: core::iter::adapters::try_process
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/mod.rs:160:17
29: <core::result::Result<V,E> as
core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/result.rs:1958:9
30: core::iter::traits::iterator::Iterator::collect
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/traits/iterator.rs:2000:9
31: <I as
datafusion_common::tree_node::TreeNodeIterator>::map_until_stop_and_collect
at /apache_datafusion/datafusion/common/src/tree_node.rs:1123:9
32: <T as datafusion_common::tree_node::TreeNode>::map_children
at /apache_datafusion/datafusion/common/src/tree_node.rs:1256:32
33:
datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:265:13
34: stacker::maybe_grow
at
/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.17/src/lib.rs:55:9
35: datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl
at /apache_datafusion/datafusion/common/src/tree_node.rs:260:9
36:
datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl::{{closure}}::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:265:35
37: <I as
datafusion_common::tree_node::TreeNodeIterator>::map_until_stop_and_collect::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:1125:17
38: core::iter::adapters::map::map_try_fold::{{closure}}
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/map.rs:95:28
39: <alloc::vec::into_iter::IntoIter<T,A> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/into_iter.rs:346:25
40: <core::iter::adapters::map::Map<I,F> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/map.rs:121:9
41: <core::iter::adapters::GenericShunt<I,R> as
core::iter::traits::iterator::Iterator>::try_fold
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/mod.rs:191:9
42: <I as
alloc::vec::in_place_collect::SpecInPlaceCollect<T,I>>::collect_in_place
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:378:13
43: alloc::vec::in_place_collect::from_iter_in_place
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:269:9
44: alloc::vec::in_place_collect::<impl
alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/in_place_collect.rs:245:9
45: <alloc::vec::Vec<T> as
core::iter::traits::collect::FromIterator<T>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/alloc/src/vec/mod.rs:2985:9
46: core::iter::traits::iterator::Iterator::collect
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/traits/iterator.rs:2000:9
47: <core::result::Result<V,E> as
core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}}
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/result.rs:1958:51
48: core::iter::adapters::try_process
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/adapters/mod.rs:160:17
49: <core::result::Result<V,E> as
core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/result.rs:1958:9
50: core::iter::traits::iterator::Iterator::collect
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/iter/traits/iterator.rs:2000:9
51: <I as
datafusion_common::tree_node::TreeNodeIterator>::map_until_stop_and_collect
at /apache_datafusion/datafusion/common/src/tree_node.rs:1123:9
52: <T as datafusion_common::tree_node::TreeNode>::map_children
at /apache_datafusion/datafusion/common/src/tree_node.rs:1256:32
53:
datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl::{{closure}}
at /apache_datafusion/datafusion/common/src/tree_node.rs:265:13
54: stacker::maybe_grow
at
/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.17/src/lib.rs:55:9
55: datafusion_common::tree_node::TreeNode::transform_up::transform_up_impl
at /apache_datafusion/datafusion/common/src/tree_node.rs:260:9
56: datafusion_common::tree_node::TreeNode::transform_up
at /apache_datafusion/datafusion/common/src/tree_node.rs:269:9
57:
<datafusion::physical_optimizer::enforce_distribution::EnforceDistribution as
datafusion_physical_optimizer::optimizer::PhysicalOptimizerRule>::optimize
at
/apache_datafusion/datafusion/core/src/physical_optimizer/enforce_distribution.rs:215:36
58:
datafusion::physical_planner::DefaultPhysicalPlanner::optimize_physical_plan
at
/apache_datafusion/datafusion/core/src/physical_planner.rs:1878:24
59: <datafusion::physical_planner::DefaultPhysicalPlanner as
datafusion::physical_planner::PhysicalPlanner>::create_physical_plan::{{closure}}
at
/apache_datafusion/datafusion/core/src/physical_planner.rs:184:17
60: <core::pin::Pin<P> as core::future::future::Future>::poll
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
61: <datafusion::execution::session_state::DefaultQueryPlanner as
datafusion::execution::context::QueryPlanner>::create_physical_plan::{{closure}}
at
/apache_datafusion/datafusion/core/src/execution/session_state.rs:1943:14
62: <core::pin::Pin<P> as core::future::future::Future>::poll
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
63:
datafusion::execution::session_state::SessionState::create_physical_plan::{{closure}}
at
/apache_datafusion/datafusion/core/src/execution/session_state.rs:735:14
64: datafusion::dataframe::DataFrame::create_physical_plan::{{closure}}
at
/apache_datafusion/datafusion/core/src/dataframe/mod.rs:219:61
65:
datafusion_sqllogictest::engines::datafusion_engine::runner::run_query::{{closure}}
at ./src/engines/datafusion_engine/runner.rs:91:42
66:
<datafusion_sqllogictest::engines::datafusion_engine::runner::DataFusion as
sqllogictest::runner::AsyncDB>::run::{{closure}}
at ./src/engines/datafusion_engine/runner.rs:60:48
67: <core::pin::Pin<P> as core::future::future::Future>::poll
at
/rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
68: sqllogictest::runner::Runner<D,M>::apply_record::{{closure}}
at
/usr/local/cargo/git/checkouts/sqllogictest-rs-417ef58aa74844f4/98ea24e/sqllogictest/src/runner.rs:773:62
69: sqllogictest::runner::Runner<D,M>::update_test_file::{{closure}}
at
/usr/local/cargo/git/checkouts/sqllogictest-rs-417ef58aa74844f4/98ea24e/sqllogictest/src/runner.rs:1412:75
70: sqllogictests::run_complete_file::{{closure}}
at ./bin/sqllogictests.rs:367:10
71: sqllogictests::run_tests::{{closure}}::{{closure}}::{{closure}}
at ./bin/sqllogictests.rs:208:83
```
### To Reproduce
I can reproduce repeatable in my branch @
https://github.com/Omega359/arrow-datafusion/tree/feature/sqllogictest_add_sqlite
when running the sqlite complete
```
cargo test --features postgres --test sqllogictests -- --complete
--postgres-runner --include-sqlite
```
It does seem to be any particular sql in that file that is causing the issue
but rather the complete number of them.
### Expected behavior
No overflow :)
### Additional context
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]