Fix:
On publisher side, for the offset calculations when using a pool allocator, we had the implicit requirement that the offsets start at zero and are a multiple of the bucket size. Introducing for the normal allocators a method that returns the smallest start point of the payload and for the shm allocators a method that returns the relative payload starting offset and use this in the SharedMemory concept as the starting point fixed the problem.
Observed result or behaviour:
When a new subscriber connects, the publisher suddenly retrieves an invalid sample.
Expected result or behaviour:
No invalid samples are retrieved
Required information
Operating system: Linux 6.7.3-arch1-2
Rust version: rustc 1.76.0 (07dca489a 2024-02-04)
Cargo version: rustc 1.76.0 (07dca489a 2024-02-04)
iceoryx2 version:
main
branchFix: On publisher side, for the offset calculations when using a pool allocator, we had the implicit requirement that the offsets start at zero and are a multiple of the bucket size. Introducing for the normal allocators a method that returns the smallest start point of the payload and for the shm allocators a method that returns the relative payload starting offset and use this in the SharedMemory concept as the starting point fixed the problem.
Observed result or behaviour: When a new subscriber connects, the publisher suddenly retrieves an invalid sample.
Expected result or behaviour: No invalid samples are retrieved
Conditions where it occurred / Performed steps: