[C++] Aggregate kernel should not mandate alignment
- Dominant language
- C++
- Stars
- 17.1k
- Forks
- 4.3k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 88
Description
When using arrow's aggregate kernel with table transferred from arrow flight (DoGet), it may crash at arrow::util::CheckAlignment(). However using original data it works well, also if I first serialize the transferred table into bytes then recreate an arrow table using the bytes, it works well.
"flight-alignment-test" attached is the minimal test that can produce the issue, which basically does "sum(total_revenue) group by l_suppkey" using the table from "DoGet()". ("DummyNode" is just used to be the producer of the aggregate node as the producer is required to create the aggregate node)
**Reporter**: [Yifei Yang](https://issues.apache.org/jira/browse/ARROW-17783)
#### Original Issue Attachments:
- [flight-alignment-test.zip](https://issues.apache.org/jira/secure/attachment/13049529/flight-alignment-test.zip)
**Note**: *This issue was originally created as [ARROW-17783](https://issues.apache.org/jira/browse/ARROW-17783). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
Contributor guide
Research direction
Start with the attached flight-alignment-test.zip, reproduce the crash with the DoGet-produced table, and trace the aggregate kernel path to arrow::util::CheckAlignment(). Compare it with the original and serialized/recreated tables. Done means the aggregate operation no longer crashes for the transferred table and the minimal reproduction is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100