eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.69k stars 393 forks source link

Chunk fails to be released when more the 4GiB of chunks have been allocated #2366

Open yxx-jojoli opened 4 weeks ago

yxx-jojoli commented 4 weeks ago

Required information

Operating system: CentOS Linux 7 (Core)

Compiler version: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

Eclipse iceoryx version: v2.0.6.RELEASE

Observed result or behaviour: When I use more than 4GB of shared memory, ROUDI encounters an error and crashes. image

Condition: offset % m_chunkSize == 0 in void iox::mepoo::MemPool::freeChunk(const void*) is violated. (/iceoryx/iceoryx_posh/source/mepoo/mem_pool.cpp:102) [ Error ]: ICEORYX error! EXPECTS_ENSURES_FAILED

Expected result or behaviour: Hope to support shared memory exceeding 4GB.

Conditions where it occurred / Performed steps: Use shared memory exceeding 4GB.

Additional helpful information

When using the v2.0.6.RELEASE branch, I found that allocating a shared memory block larger than 4GB results in an error, which is the same issue described in issue_2087. However, after reviewing the code, I noticed that the bug fix from November 2023 (issues/2087) was not merged into the RELEASE.2.0.6 branch. This has left me confused—was this due to an oversight during the merge process?

elBoberido commented 3 weeks ago

@yxx-jojoli this was only fixed on the main branch. We did not expect to have many users with this problem and therefore did not take the effort and risk to backport it to the last release. We hope to have a new release later this year.