You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Hatem Helal (JIRA)" <ji...@apache.org> on 2019/07/11 15:49:00 UTC
[jira] [Commented] (PARQUET-1623) [C++] Invalid memory access with
a magic number of records
[ https://issues.apache.org/jira/browse/PARQUET-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16883112#comment-16883112 ]
Hatem Helal commented on PARQUET-1623:
--------------------------------------
Here is the ASAN stack for the test:
[https://gist.github.com/hatemhelal/ca0f6ef21f7aee0ff71afe18fbd52f92]
> [C++] Invalid memory access with a magic number of records
> ----------------------------------------------------------
>
> Key: PARQUET-1623
> URL: https://issues.apache.org/jira/browse/PARQUET-1623
> Project: Parquet
> Issue Type: Bug
> Components: parquet-cpp
> Reporter: Hatem Helal
> Assignee: Hatem Helal
> Priority: Minor
>
> I've observed a crash due to an invalid memory access when trying to read a parquet file that I created with a single column of double-precision values that occupies a fixed amount of memory. After some experimentation I found that the following unittest added to {{arrow-reader-writer-test.cc}} will fail when run in an ASAN build.
> {code:java}
> TEST(TestArrowReadWrite, MultiDataPageMagicNumber) {
> const int num_rows = 262144; // 2^18
> std::shared_ptr<Table> table;
> ASSERT_NO_FATAL_FAILURE(MakeDoubleTable(1, num_rows, 1, &table));
> std::shared_ptr<Table> result;
> ASSERT_NO_FATAL_FAILURE(
> DoSimpleRoundtrip(table, false, table->num_rows(), {}, &result));
> ASSERT_NO_FATAL_FAILURE(::arrow::AssertTablesEqual(*table, *result));
> }{code}
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)