Rares Vernica commented on ARROW-2189:

Does this help?
> g++-4.9 -ggdb -std=c++11 -larrow foo.cpp     
 > strace ./a.out 
strace: test_ptrace_setoptions_for_all: PTRACE_TRACEME doesn't work: Operation 
not permitted
strace: test_ptrace_setoptions_for_all: unexpected exit status 1
> gdb ./a.out 
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
Find the GDB manual and other documentation resources online at:
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./a.out...done.
(gdb) run
Starting program: /a.out 
warning: Error disabling address space randomization: Operation not permitted
During startup program terminated with signal SIGSEGV, Segmentation fault.
(gdb) strace 
No default breakpoint address now.
(gdb) backtrace 
No stack.
Otherwise I can get you a Dockerfile.

I see a bunch of SELinux errors on the host, which is a Fedora 27, every time 
this crushes.

> [C++] Seg. fault on make_shared<PoolBuffer>
> -------------------------------------------
>                 Key: ARROW-2189
>                 URL: https://issues.apache.org/jira/browse/ARROW-2189
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 0.8.0
>         Environment: Debian jessie in a Docker container
> libarrow-dev 0.8.0-2 (Ubuntu trusty)
>            Reporter: Rares Vernica
>            Priority: Major
> 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:
> {code:java}
> #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);
> }
> {code}
> {code:java}
> > g++-4.9 -std=c++11 -larrow foo.cpp && ./a.out
> Segmentation fault (core dumped)
> {code}
> The example works fine with {{#1}} or {{#2}} options. It also works if the 
> builder is commented out.

This message was sent by Atlassian JIRA

Reply via email to