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)