Message may arrive out of order in mmap mode? #986
Replies: 3 comments 3 replies
-
Hi, thanks for reporting this! Do you have a minimal sample which can reproduce the issue on an x86 architecture? |
Beta Was this translation helpful? Give feedback.
-
What you can always do in your own code is to store the last timestamp and drop messages with timestamps smaller than that. |
Beta Was this translation helpful? Give feedback.
-
With the following test and settings of
I can reproduce the out of order messages: In my opinion, the only thing which can really be done to avoid this, is to have shared locks of the SHM for reading? However, what I don't understand, even with Setup:
-> Not every (other) message arrives out of order, maybe 1 / 50 ? It seems like this could be quite hard to locate, we might need more logging....
|
Beta Was this translation helpful? Give feedback.
-
I understand system like ROS1 which relies on TCP transport naturally guarantee the subscriber receive the messages in order. This is particularly important for high frequency sequential data like IMU messages at several hundred Hz.
However, I experience regression of timestamps when I turn
memfile_buffer_count
to be more than 1 (e.g. 2), and with a smallmemfile_ack_timeout
(say 0 or 2).The issue seems to disappear when I increase timeout such that
memfile_buffer_count = 2
andmemfile_ack_timeout = 10
.Could help explain what is going on under the hood? And is there anyway I can tweak eCAL to guarantee in order messaging on the same machine? Thanks!
A bit more info:
Beta Was this translation helpful? Give feedback.
All reactions