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

Reply via email to