rt_pipe_write memory allocation bug - xenomai 3.x

Jan Kiszka jan.kiszka at siemens.com
Mon Jul 27 15:17:20 CEST 2020

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 


Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

More information about the Xenomai mailing list