[ros-users] Large Messages generate segmentation fault

Sebastian Schneider s.schneider at unibw.de
Thu Sep 15 12:21:59 UTC 2011


Here it comes:

Program received signal SIGSEGV, Segmentation fault.
boost::detail::shared_count::shared_count<eval::TestMessage_<std::allocator<void>
>*, boost::detail::sp_ms_deleter<eval::TestMessage_<std::allocator<void>
> > > (
    this=0x7fffffffc888, p=0x0) at
/usr/include/boost/smart_ptr/detail/shared_count.hpp:160
160	            pi_ = new sp_counted_impl_pd< P, D >( p );
(gdb) bt
#0
boost::detail::shared_count::shared_count<eval::TestMessage_<std::allocator<void>
>*, boost::detail::sp_ms_deleter<eval::TestMessage_<std::allocator<void>
> > > (
    this=0x7fffffffc888, p=0x0) at
/usr/include/boost/smart_ptr/detail/shared_count.hpp:160
#1  0x00000000004af064 in
shared_ptr<eval::TestMessage_<std::allocator<void> >,
boost::detail::sp_inplace_tag<boost::detail::sp_ms_deleter<eval::TestMessage_<std::allocator<void>
> > > > (p=0x0, this=0x7fffffffc880, d=<optimized out>) at
/usr/include/boost/smart_ptr/shared_ptr.hpp:194
#2  boost::make_shared<eval::TestMessage_<std::allocator<void> > > () at
/usr/include/boost/smart_ptr/make_shared.hpp:123
#3  0x00000000004af139 in operator() (this=<optimized out>) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/include/ros/message_event.h:54
#4
boost::detail::function::function_obj_invoker0<ros::DefaultMessageCreator<eval::TestMessage_<std::allocator<void>
> >, boost::shared_ptr<eval::TestMessage_<std::allocator<void> > >
>::invoke (function_obj_ptr=<optimized out>) at
/usr/include/boost/function/function_template.hpp:132
#5  0x00000000004bd691 in operator() (this=0x7fffe8000ed8) at
/usr/include/boost/function/function_template.hpp:760
#6
ros::SubscriptionCallbackHelperT<eval::TestMessage_<std::allocator<void>
> const&, void>::deserialize (this=0x7fffe8000eb0, params=...)
    at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/include/ros/subscription_callback_helper.h:149
#7  0x00007ffff748cd4e in ros::MessageDeserializer::deserialize
(this=0x7fffe80024d0) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/message_deserializer.cpp:74
#8  0x00007ffff748d6fe in ros::SubscriptionQueue::call
(this=0x7fffe80012a0) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/subscription_queue.cpp:150
#9  0x00007ffff74c7aa9 in ros::CallbackQueue::callOneCB (this=0x7187e0,
tls=0x7fffe80027f0) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:381
#10 0x00007ffff74c99fb in ros::CallbackQueue::callAvailable
(this=0x7187e0, timeout=<optimized out>) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:333
#11 0x00007ffff74ce9c6 in ros::SingleThreadedSpinner::spin
(this=<optimized out>, queue=0x7187e0) at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/spinner.cpp:49
#12 0x00007ffff746650b in ros::spin () at
/home/sesc/ros/ros_comm/clients/cpp/roscpp/src/libros/init.cpp:488
#13 0x000000000045ecdc in main (argc=8, argv=<optimized out>) at
/home/sesc/hg/mucar_ros/eval/src/eval_responder.cpp:366



Am 15.09.2011 14:04, schrieb Troy Straszheim:
> On Thu, Sep 15, 2011 at 12:54 PM, Sebastian Schneider
> <s.schneider at unibw.de <mailto:s.schneider at unibw.de>> wrote:
> 
>     Hello,
> 
>     I'm currently measuring the performance of ROS. Therefore I generated a
>     test-message with the following variable:
> 
>     uint8[10000000] var0
> 
>     Now when I send this message via P/S the subscribing node crashes due to
>     a segmentation fault:
> 
>     Program received signal SIGSEGV, Segmentation fault.
>     boost::detail::shared_count::shared_count<eval::TestMessage_<std::allocator<void>
>     >*, boost::detail::sp_ms_deleter<eval::TestMessage_<std::allocator<void>
>     > > > (
>        this=0x7fffffffc888, p=0x0) at
>     /usr/include/boost/smart_ptr/detail/shared_count.hpp:160
>     160                 pi_ = new sp_counted_impl_pd< P, D >( p );
> 
>     If I make the array only 1000000 bytes large, everything works. If I
>     make it even bigger, I get the same segmentation fault.
> 
>     Any ideas?
> 
> 
> A stack trace would help...
> 
>  
> 
> 
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users



More information about the ros-users mailing list