You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Rares Vernica (JIRA)" <ji...@apache.org> on 2018/02/20 05:03:00 UTC

[jira] [Comment Edited] (ARROW-2189) [C++] Seg. fault on make_shared

    [ https://issues.apache.org/jira/browse/ARROW-2189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16369721#comment-16369721 ] 

Rares Vernica edited comment on ARROW-2189 at 2/20/18 5:02 AM:
---------------------------------------------------------------

Does this help?
{code:java}
> 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:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
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.
{code}
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.


was (Author: rvernica):
Does this help?
{code:java}
> 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:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
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.
{code}
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
(v7.6.3#76005)