You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/07/11 15:50:00 UTC

[jira] [Updated] (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:all-tabpanel ]

Wes McKinney updated PARQUET-1623:
----------------------------------
    Fix Version/s: cpp-1.6.0

> [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
>             Fix For: cpp-1.6.0
>
>
> 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)