Skip to content

[C++] Seg. fault on make_shared<PoolBuffer> #18154

@asfimport

Description

@asfimport

When creating a PoolBuffer, I get a Segmentation fault when I use make_shared. If I use the shared_ptr constructor of reset, it works fine. Here is an example:

#include <arrow/builder.h>

int main()
{
    arrow::MemoryPool* pool = arrow::default_memory_pool();

    arrow::Int64Builder builder(pool);
    builder.Append(1);

    // #1
    // std::shared_ptr<arrow::PoolBuffer> buffer(new arrow::PoolBuffer(pool));
    // #2
    // std::shared_ptr<arrow::PoolBuffer> buffer;
    // buffer.reset(new arrow::PoolBuffer(pool));
    // #3
    auto buffer = std::make_shared<arrow::PoolBuffer>(pool);
}
> g++-4.9 -std=c++11 -larrow foo.cpp && ./a.out
Segmentation fault (core dumped)

The example works fine with #1 or #2 options. It also works if the builder is commented out.

Environment: Debian jessie in a Docker container
libarrow-dev 0.8.0-2 (Ubuntu trusty)

Reporter: Rares Vernica / @rvernica
Assignee: Wes McKinney / @wesm

Original Issue Attachments:

Note: This issue was originally created as ARROW-2189. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions