[ 
https://issues.apache.org/jira/browse/ARROW-14983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Weston Pace updated ARROW-14983:
--------------------------------
    Summary: [C++] Crash when build arrow::Array using arrow::ArrayBuilder  
(was: Crash when build arrow::Array using arrow::ArrayBuilder)

> [C++] Crash when build arrow::Array using arrow::ArrayBuilder
> -------------------------------------------------------------
>
>                 Key: ARROW-14983
>                 URL: https://issues.apache.org/jira/browse/ARROW-14983
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 5.0.0
>         Environment: $ uname -a                 
> Linux sg-ch-test006.bigdata.bigo.inner 4.9.70-040970-generic #201712161132 
> SMP Sat Dec 16 16:33:52 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
>            Reporter: liyang
>            Priority: Major
>
> Reproduce process: 
> BTW, after using this PR, the crash disappeared.  
> {code:cpp}
> int main()
> {
>     auto value_field = arrow::field("value", arrow::utf8(), false);
>     auto map_field = arrow::field("evenInfo", arrow::map(arrow::utf8(), 
> value_field), false);
>     auto map_type = 
> std::dynamic_pointer_cast<arrow::MapType>(map_field->type());
>     std::cout << "field:" << map_field->ToString() << std::endl;
>     std::cout << "key_type: " << map_type->key_type()->ToString() << 
> std::endl;
>     std::cout << "val_type: " << map_type->value_type()->ToString() << 
> std::endl;
>     std::cout << "item_type: " << map_type->item_type()->ToString() << 
> std::endl;
>     arrow::MemoryPool * pool = arrow::default_memory_pool();
>     std::unique_ptr<arrow::ArrayBuilder> array_builder;
>     arrow::Status status = MakeBuilder(pool, map_field->type(), 
> &array_builder);
>     std::shared_ptr<arrow::Array> arrow_array;
>     status = array_builder->Finish(&arrow_array);
>     std::cout << status.ToString() << std::endl;
>     return 0; 
> }
> {code}
> error log:  
> {code:bash}
> Check failed: 
> self->list_type_->value_type()->Equals(data->child_data[0]->type) 
> {code}
> crash backtrace as below: 
> {code:bash}
> #0  0x00007fcdd893118b in raise () from /usr/lib/x86_64-linux-gnu/libc.so.6
> (gdb) bt 
> #0  0x00007fcdd893118b in raise () from /usr/lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007fcdd8910859 in abort () from /usr/lib/x86_64-linux-gnu/libc.so.6
> #2  0x000000000e39c209 in arrow::util::CerrLog::~CerrLog() ()
> #3  0x000000000e39c239 in arrow::util::CerrLog::~CerrLog() ()
> #4  0x000000000e39be90 in arrow::util::ArrowLog::~ArrowLog() ()
> #5  0x000000000d93ddf0 in void 
> arrow::internal::SetListData<arrow::ListType>(arrow::BaseListArray<arrow::ListType>*,
>  std::__1::shared_ptr<arrow::ArrayData> const&, arrow::Type::type) ()
> #6  0x000000000d935e4d in 
> arrow::MapArray::SetData(std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #7  0x000000000d935c13 in 
> arrow::MapArray::MapArray(std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #8  0x000000000d9cab30 in std::__1::__shared_ptr_emplace<arrow::MapArray, 
> std::__1::allocator<arrow::MapArray> 
> >::__shared_ptr_emplace<std::__1::shared_ptr<arrow::ArrayData> 
> const&>(std::__1::allocator<arrow::MapArray>, 
> std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #9  0x000000000d9caa2f in std::__1::shared_ptr<arrow::MapArray> 
> std::__1::allocate_shared<arrow::MapArray, 
> std::__1::allocator<arrow::MapArray>, std::__1::shared_ptr<arrow::ArrayData> 
> const&, void>(std::__1::allocator<arrow::MapArray> const&, 
> std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #10 0x000000000d9ca9ae in std::__1::shared_ptr<arrow::MapArray> 
> std::__1::make_shared<arrow::MapArray, std::__1::shared_ptr<arrow::ArrayData> 
> const&, void>(std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #11 0x000000000d9bd20f in arrow::Status arrow::(anonymous 
> namespace)::ArrayDataWrapper::Visit<arrow::MapType>(arrow::MapType const&) ()
> #12 0x000000000d9aebfb in arrow::Status 
> arrow::VisitTypeInline<arrow::(anonymous 
> namespace)::ArrayDataWrapper>(arrow::DataType const&, arrow::(anonymous 
> namespace)::ArrayDataWrapper*) ()
> #13 0x000000000d9ae2e2 in 
> arrow::MakeArray(std::__1::shared_ptr<arrow::ArrayData> const&) ()
> #14 0x000000000d94d62f in 
> arrow::ArrayBuilder::Finish(std::__1::shared_ptr<arrow::Array>*) ()
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to