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

Andrew Stitcher updated PROTON-1590:
------------------------------------
    Summary: Segfaults when compiling C++03 clients with a C++11 compiled 
proton-cpp library  (was: Segfault in proton-c++ when compiled with GCC 7.1.0 
without any options and then used from project compiled with -stc=c++03)

> Segfaults when compiling C++03 clients with a C++11 compiled proton-cpp 
> library
> -------------------------------------------------------------------------------
>
>                 Key: PROTON-1590
>                 URL: https://issues.apache.org/jira/browse/PROTON-1590
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: cpp-binding
>            Reporter: Jiri Danek
>            Assignee: Andrew Stitcher
>             Fix For: proton-c-0.18.0
>
>
> Compile the proton library as usual.
> {noformat}
> cmake .. -DBUILD_GO=OFF -DCMAKE_INSTALL_PREFIX=../install -GNinja
> ninja install
> {noformat}
> Now compile an application that uses container.schedule() function. An 
> example should work fine.
> {noformat}
> g++ -std=c++03 scheduled_send_03.cpp -I ../../install/include -L 
> ../../install/lib64 -l qpid-proton-cpp -l qpid-proton-core -l 
> qpid-proton-proactor
> {noformat}
> Run this and observe the segfault
> {noformat}
> LD_LIBRARY_PATH=../../install/lib64 ./a.out  
> Segmentation fault
> {noformat}
> {noformat}
> $ LD_LIBRARY_PATH=../../install/lib64 gdb --args ./a.out
> GNU gdb (GDB) 8.0
> Copyright (C) 2017 Free Software Foundation, Inc.
> [...]
> Reading symbols from ./a.out...done.
> (gdb) run
> Starting program: /home/jdanek/Work/repos/qpid-proton/examples/cpp/a.out 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library 
> "/nix/store/l48biijfr1j6d5kdg911051x2phfjrz7-glibc-2.25/lib/libthread_db.so.1".
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007fffffffae20 in ?? ()
> (gdb) bt
> #0  0x00007fffffffae20 in ?? ()
> #1  0x00007ffff7bb09d4 in std::function<void ()>::function(std::function<void 
> ()> const&) (this=0x7ffffffface0, __x=...)
>     at 
> /nix/store/pdidaf83cvkrgx8xjgjdnl5m1naqjbfk-gcc-7.1.0/include/c++/7.1.0/bits/std_function.h:677
> #2  0x00007ffff7bc714a in proton::work::work (this=0x7ffffffface0) at 
> ../proton-c/bindings/cpp/include/proton/work_queue.hpp:47
> #3  proton::work_queue::schedule (this=<optimized out>, d=..., f=...) at 
> ../proton-c/bindings/cpp/src/work_queue.cpp:49
> #4  0x0000000000405ade in void proton::schedule_work<proton::work_queue*, 
> void (scheduled_sender::*)(proton::sender), scheduled_sender*, 
> proton::sender>(proton::work_queue*, proton::duration, void 
> (scheduled_sender::*)(proton::sender), scheduled_sender*, proton::sender) ()
> #5  0x0000000000405bfb in scheduled_sender::on_sender_open(proton::sender&) ()
> #6  0x00007ffff7bb8f3d in proton::(anonymous namespace)::on_link_remote_open 
> (event=0x7fffffffb1a0, handler=warning: RTTI symbol not found for class 
> 'scheduled_sender'
> ...)
>     at ../proton-c/bindings/cpp/src/messaging_adapter.cpp:267
> #7  proton::messaging_adapter::dispatch (handler=warning: RTTI symbol not 
> found for class 'scheduled_sender'
> ..., event=event@entry=0x61dcd0)
>     at ../proton-c/bindings/cpp/src/messaging_adapter.cpp:309
> #8  0x00007ffff7bafa2e in proton::container::impl::handle 
> (this=this@entry=0x61d030, event=0x61dcd0)
>     at ../proton-c/bindings/cpp/src/proactor_container_impl.cpp:601
> #9  0x00007ffff7bb006b in proton::container::impl::thread 
> (this=this@entry=0x61d030)
>     at ../proton-c/bindings/cpp/src/proactor_container_impl.cpp:613
> #10 0x00007ffff7bb0413 in proton::container::impl::run (this=0x61d030, 
> threads=1)
>     at ../proton-c/bindings/cpp/src/proactor_container_impl.cpp:651
> #11 0x0000000000404166 in main ()
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to