On 27.07.20 14:44, Stéphane Ancelot via Xenomai wrote:
Hi,
Using pipe created with poolsize = 0, meaning all message allocations
for this pipe are performed on the Cobalt core heap.
Unfortunately, using rt_pipe_write(), when no user task is consuming
it, we discovered after almost many rt_pipe_write() cycles (700000 at
least in our process) , that the cobalt heap and system heap seem being
corrupted.
Leading to system issues like unattended task crashes .....
"3.x" implies both 3.1 and 3.0 are affected?
Do you see a constantly growing use of system heap (leak)? If that is
not the case, we might have some wrap-around issue somewhere.
Reproduction case would be nice.
Are there any way to bypass this problem, like knowing if pipe has been
opened before writing it ?
Regarding signalling of a non-RT client is connected: There is no
mechanism for that so far. Could be added. Needs a proposal for a useful
API.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux