You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "DDtKey (via GitHub)" <gi...@apache.org> on 2023/12/28 22:41:15 UTC

Re: [I] join statement causes panic [arrow-datafusion]

DDtKey commented on issue #7931:
URL: https://github.com/apache/arrow-datafusion/issues/7931#issuecomment-1871601997

   Another (a bit artificial, intentionally generating a Cartesian product) MRE:
   
   ```
   ❯ CREATE EXTERNAL TABLE test STORED AS CSV LOCATION 'file:///tmp/test-21mb.csv';
   0 rows in set. Query took 0.105 seconds.
   
   ❯ SELECT repeat(lf1.column_2, 15) FROM test lf1 join test lf2 on lf1.column_1 = lf2.column_1 join test lf3 on lf2.column_1 = lf3.column_1 join test lf4 on lf3.column_1 = lf4.column_1
   ;
   thread 'tokio-runtime-worker' panicked at /Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/arrow-select-49.0.0/src/take.rs:423:41:
   offset overflow
   ```
   
   <details>
   <summary>stack backtrace</summary>
   
   ```
      0: _rust_begin_unwind
      1: core::panicking::panic_fmt
      2: core::option::expect_failed
      3: arrow_select::take::take_bytes
      4: arrow_select::take::take_impl
      5: arrow_select::take::take
      6: datafusion_physical_plan::joins::utils::build_batch_from_indices
      7: <datafusion_physical_plan::joins::hash_join::HashJoinStream as futures_core::stream::Stream>::poll_next
      8: <datafusion_physical_plan::coalesce_batches::CoalesceBatchesStream as futures_core::stream::Stream>::poll_next
      9: <datafusion_physical_plan::projection::ProjectionStream as futures_core::stream::Stream>::poll_next
     10: datafusion_physical_plan::stream::RecordBatchReceiverStreamBuilder::run_input::{{closure}}
     11: tokio::runtime::task::core::Core<T,S>::poll
     12: tokio::runtime::task::harness::Harness<T,S>::poll
     13: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
     14: tokio::runtime::scheduler::multi_thread::worker::Context::run
     15: tokio::runtime::context::runtime::enter_runtime
     16: tokio::runtime::scheduler::multi_thread::worker::run
     17: tokio::runtime::task::core::Core<T,S>::poll
     18: tokio::runtime::task::harness::Harness<T,S>::poll
     19: tokio::runtime::blocking::pool::Inner::run
   note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
   ``` 
   </details>
   
   > query output tries to make a column with more than 2GB 
   
   In fact, it's not the case for this example, the query result does not generate such large data (but intermediate results can be really big - I mean row, not a column)
   Not sure if it may help though
   
   test file: [test-21mb.csv](https://github.com/apache/arrow-datafusion/files/13789894/test-21mb.csv)
   


-- 
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: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org