[ros-users] rtt_orocs_toolchain: invalidated write ports when running high frequency task context

Stefan Kohlbrecher stefan.kohlbrecher at googlemail.com
Fri Oct 15 16:47:42 UTC 2010


Hi,

I played around some more with the rtt_ros_integration_example. To
check the behavior on my non-hard RT system with high execution speeds
I set the periodic activity to a 10 kHz update rate. Barring that
doing that is not making much sense, I basically nondeterministically
get the following errors for the outports after some (short) time:

 [ ERROR  ][Logger] A channel of port float_out has been invalidated
during write(), it will be removed


Complete Info with gdb Backtrace:

Deployer [S]> 5.502 [ ERROR  ][Logger] A channel of port float_out has
been invalidated during write(), it will be removed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd9ca1710 (LWP 31603)]
0x00007fffdca76e9f in
ros_integration::RosPubChannelElement<std_msgs::Float64_<std::allocator<void>
> >::publish (this=0x7fffe80520a0)
    at /home/stefan/rosext/orocos_toolchain_ros/rtt_ros_integration/src/ros_msg_transporter.hpp:100
100           if( input->read(sample) == NewData )
(gdb) bt
#0  0x00007fffdca76e9f in
ros_integration::RosPubChannelElement<std_msgs::Float64_<std::allocator<void>
> >::publish (this=0x7fffe80520a0)
    at /home/stefan/rosext/orocos_toolchain_ros/rtt_ros_integration/src/ros_msg_transporter.hpp:100
#1  0x00007fffe6dcca67 in ros_integration::RosPublishActivity::loop
(this=0x7fffe8052be0)
    at /home/stefan/rosext/orocos_toolchain_ros/rtt_ros_integration/src/ros_publish_activity.hpp:39
#2  0x00007ffff72e98ab in RTT::os::thread_function (t=<value optimized out>)
    at /home/stefan/rosext/orocos_toolchain_ros/rtt/build/orocos-toolchain-rtt/rtt/os/Thread.cpp:182
#3  0x00007ffff66869ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#4  0x00007ffff4b2d6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

I don't have a hard-RT system available for testing right now, but I'd
expect "best effort" publishing together with a warning when using the
ROS transport and not completely switching off the Outport. Is this
known/intended behavior?

regards,
Stefan



More information about the ros-users mailing list