Re: [ros-users] rtt_orocs_toolchain: invalidated write ports…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: User discussions
Subject: Re: [ros-users] rtt_orocs_toolchain: invalidated write ports when running high frequency task context
On Fri, Oct 15, 2010 at 6:47 PM, Stefan Kohlbrecher
<> wrote:
> 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


This message means the Orocos ros transport decided to terminate the
connection. The current code does this when it had to drop a sample.
That's a painful default :-/ I believe Ruben will change that to just drop
the sample and do a best effort as you suggest.

>
>
> 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.


The segfault comes from a race in the transport code which is not
properly prepared
for the object destruction. I believe we can fix this quickly too by
stopping the
publish activity in the destructor of the ros transport channel.

Thanks for reporting, we obviously had not yet tested it in this way.

Peter