You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by 张帅 <zh...@gmail.com> on 2021/08/20 08:49:18 UTC

[C++] Coredump when writing Arrow table to Parquet file

Hello everyone,

I'm suffering from a coredump issue when writing Arrow table to Parquet
file. This issue is stable reproducible when compiling Arrow without
Jemalloc. I made some initial investigations:

1. It happened on v4.0.1 & master branch
2. It happened on different distro & different gcc versions (Debian 8/9/11
& Ubuntu 20.04, gcc 4.9.2/6.3.0/10.2.1, clang 12.0.1)

More details recorded in ARROW-13676 (including callstack, reproducing
codes).

Looking forward to any helping!


Regards,
Shuai Zhang

------
Code:
https://github.com/hcoona/arrow/commit/8fa6cdb0c756c17ea3edc43b7b73c717823bda85
------
Callstack

    #0 0x7f4478d3c62c in parquet::arrow::(anonymous
namespace)::VarRangeSelector<int>::GetRange(long) const
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:438:41
    #1 0x7f4478d3bdfa in parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int>
>::Run(parquet::arrow::ElementRange*, parquet::arrow::ElementRange*,
parquet::arrow::(anonymous namespace)::PathWriteContext*)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:345:32
    #2 0x7f4478d3b9e7 in parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult
const&)>)::$_0::operator()(parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >*)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:583:22
    #3 0x7f4478d3aa32 in parquet::arrow::(anonymous
namespace)::IterationResult
arrow::util::detail::VariantImpl<arrow::util::Variant<parquet::arrow::(anonymous
namespace)::NullableTerminalNode, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode>, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode>::visit_mutable<parquet::arrow::(anonymous
namespace)::IterationResult, parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult
const&)>)::$_0&>(parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:236:14
    #4 0x7f4478d3a8f7 in parquet::arrow::(anonymous
namespace)::IterationResult
arrow::util::detail::VariantImpl<arrow::util::Variant<parquet::arrow::(anonymous
namespace)::NullableTerminalNode, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode>, parquet::arrow::(anonymous
namespace)::NullableTerminalNode, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode>::visit_mutable<parquet::arrow::(anonymous
namespace)::IterationResult, parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult
const&)>)::$_0&>(parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:238:27
    #5 0x7f4478d3a7ec in parquet::arrow::(anonymous
namespace)::IterationResult
arrow::util::visit<parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&,
parquet::arrow::(anonymous namespace)::NullableTerminalNode,
parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode, parquet::arrow::(anonymous
namespace)::IterationResult>(parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&,
arrow::util::Variant<parquet::arrow::(anonymous
namespace)::NullableTerminalNode, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
namespace)::ListPathNode<parquet::arrow::(anonymous
namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
namespace)::NullableNode, parquet::arrow::(anonymous
namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
namespace)::AllNullsTerminalNode>*)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:370:22
    #6 0x7f4478d39bfc in parquet::arrow::(anonymous
namespace)::WritePath(parquet::arrow::ElementRange,
parquet::arrow::(anonymous namespace)::PathInfo*,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:604:30
    #7 0x7f4478d701a1 in
parquet::arrow::MultipathLevelBuilderImpl::Write(int,
parquet::ArrowWriteContext*, std::function<arrow::Status
(parquet::arrow::MultipathLevelBuilderResult const&)>)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:865:12
    #8 0x7f4478eb50a6 in parquet::arrow::(anonymous
namespace)::ArrowColumnWriterV2::Write(parquet::ArrowWriteContext*)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:134:9
    #9 0x7f4478ebb0ee in
parquet::arrow::FileWriterImpl::WriteColumnChunk(std::shared_ptr<arrow::ChunkedArray>
const&, long, long)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:313:22
    #10 0x7f4478ebc1c0 in
parquet::arrow::FileWriterImpl::WriteTable(arrow::Table const&,
long)::'lambda'(long, long)::operator()(long, long) const
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:340:9
    #11 0x7f4478eba0ae in
parquet::arrow::FileWriterImpl::WriteTable(arrow::Table const&, long)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:353:7
    #12 0x7f4478eb2d50 in parquet::arrow::WriteTable(arrow::Table
const&, arrow::MemoryPool*, std::shared_ptr<arrow::io::OutputStream>,
long, std::shared_ptr<parquet::WriterProperties>,
std::shared_ptr<parquet::ArrowWriterProperties>)
/data00/home/zhangshuai.ds/GitEnlistments/code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:479:3

.....

-------



<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
无病毒。www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Re: [C++] Coredump when writing Arrow table to Parquet file

Posted by Micah Kornfield <em...@gmail.com>.
Hi Shuai,
I responded on the JIRA (and have a PR out to fix the issue I think).

-Micah

On Fri, Aug 20, 2021 at 5:39 AM 张帅 <zh...@gmail.com> wrote:

> Hello everyone,
>
> I'm suffering from a coredump issue when writing Arrow table to Parquet
> file. This issue is stable reproducible when compiling Arrow without
> Jemalloc. I made some initial investigations:
>
> 1. It happened on v4.0.1 & master branch
> 2. It happened on different distro & different gcc versions (Debian 8/9/11
> & Ubuntu 20.04, gcc 4.9.2/6.3.0/10.2.1, clang 12.0.1)
>
> More details recorded in ARROW-13676 (including callstack, reproducing
> codes).
>
> Looking forward to any helping!
>
>
> Regards,
> Shuai Zhang
>
> ------
> Code:
>
> https://github.com/hcoona/arrow/commit/8fa6cdb0c756c17ea3edc43b7b73c717823bda85
> ------
> Callstack
>
>     #0 0x7f4478d3c62c in parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int>::GetRange(long) const
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:438:41
>     #1 0x7f4478d3bdfa in parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int>
> >::Run(parquet::arrow::ElementRange*, parquet::arrow::ElementRange*,
> parquet::arrow::(anonymous namespace)::PathWriteContext*)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:345:32
>     #2 0x7f4478d3b9e7 in parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult
> const&)>)::$_0::operator()(parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >*)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:583:22
>     #3 0x7f4478d3aa32 in parquet::arrow::(anonymous
> namespace)::IterationResult
>
> arrow::util::detail::VariantImpl<arrow::util::Variant<parquet::arrow::(anonymous
> namespace)::NullableTerminalNode, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode>, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode>::visit_mutable<parquet::arrow::(anonymous
> namespace)::IterationResult, parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult
> const&)>)::$_0&>(parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:236:14
>     #4 0x7f4478d3a8f7 in parquet::arrow::(anonymous
> namespace)::IterationResult
>
> arrow::util::detail::VariantImpl<arrow::util::Variant<parquet::arrow::(anonymous
> namespace)::NullableTerminalNode, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode>, parquet::arrow::(anonymous
> namespace)::NullableTerminalNode, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode>::visit_mutable<parquet::arrow::(anonymous
> namespace)::IterationResult, parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult
> const&)>)::$_0&>(parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:238:27
>     #5 0x7f4478d3a7ec in parquet::arrow::(anonymous
> namespace)::IterationResult
> arrow::util::visit<parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&,
> parquet::arrow::(anonymous namespace)::NullableTerminalNode,
> parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode, parquet::arrow::(anonymous
> namespace)::IterationResult>(parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)::$_0&,
> arrow::util::Variant<parquet::arrow::(anonymous
> namespace)::NullableTerminalNode, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<int> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::VarRangeSelector<long> >, parquet::arrow::(anonymous
> namespace)::ListPathNode<parquet::arrow::(anonymous
> namespace)::FixedSizedRangeSelector>, parquet::arrow::(anonymous
> namespace)::NullableNode, parquet::arrow::(anonymous
> namespace)::AllPresentTerminalNode, parquet::arrow::(anonymous
> namespace)::AllNullsTerminalNode>*)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/arrow/util/variant.h:370:22
>     #6 0x7f4478d39bfc in parquet::arrow::(anonymous
> namespace)::WritePath(parquet::arrow::ElementRange,
> parquet::arrow::(anonymous namespace)::PathInfo*,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:604:30
>     #7 0x7f4478d701a1 in
> parquet::arrow::MultipathLevelBuilderImpl::Write(int,
> parquet::ArrowWriteContext*, std::function<arrow::Status
> (parquet::arrow::MultipathLevelBuilderResult const&)>)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/path_internal.cc:865:12
>     #8 0x7f4478eb50a6 in parquet::arrow::(anonymous
> namespace)::ArrowColumnWriterV2::Write(parquet::ArrowWriteContext*)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:134:9
>     #9 0x7f4478ebb0ee in
>
> parquet::arrow::FileWriterImpl::WriteColumnChunk(std::shared_ptr<arrow::ChunkedArray>
> const&, long, long)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:313:22
>     #10 0x7f4478ebc1c0 in
> parquet::arrow::FileWriterImpl::WriteTable(arrow::Table const&,
> long)::'lambda'(long, long)::operator()(long, long) const
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:340:9
>     #11 0x7f4478eba0ae in
> parquet::arrow::FileWriterImpl::WriteTable(arrow::Table const&, long)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:353:7
>     #12 0x7f4478eb2d50 in parquet::arrow::WriteTable(arrow::Table
> const&, arrow::MemoryPool*, std::shared_ptr<arrow::io::OutputStream>,
> long, std::shared_ptr<parquet::WriterProperties>,
> std::shared_ptr<parquet::ArrowWriterProperties>)
> /data00/home/zhangshuai.ds/GitEnlistments/
> code.byted.org/cpp3rdlib/arrow/cpp/build/../src/parquet/arrow/writer.cc:479:3
>
> .....
>
> -------
>
>
>
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
> >
> 无病毒。www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>