<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"><br></div><div style="font-size: 16px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span style="font-family: 'bookman old style', 'new york', times, serif;">Hello guys,</span></div><div style="font-size: 16px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span style="font-family: 'bookman old style', 'new york', times, serif;"><br></span></div><div style="font-size: 16px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span style="font-family: 'bookman old style', 'new york', times, serif;">We have been using RTEMS 4.10.1 version in a clinical care med unit, and we believe there may be a synchronization problem in the message queue mechanisms.</span></div><div
 style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><span style="font-family: 'bookman old style', 'new york', times, serif;"><span style="font-size: 16px;">We've observed that sometimes, the values from the currently running thread TCB table are not valid anymore</span><font><span style="font-size: 15px;">.</span></font></span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 15px;"><span style="font-family: 'bookman old style', 'new york', times, serif; background-color: transparent;">Let me give you 2 examples:</span><br></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif;"><font><span style="font-size: 15px; font-family: 'bookman old style', 'new york', times, serif;"><br></span></font></div><div style="color: rgb(0, 0, 0); background-color: transparent;
 font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif;"><font><span style="font-size: 15px; font-family: 'bookman old style', 'new york', times, serif;">1. In function "</span></font>rtems_message_queue_receive" there is a call to "_Message_queue_Translate_core_message_queue_return_code" with input parameter<span style="background-color: transparent;"> "_Thread_Executing-></span><span style="background-color: transparent; color: rgb(128, 0, 0);">Wait</span><span style="background-color: transparent;">.</span><span style="background-color: transparent; color: rgb(128, 0, 0);">return_code".</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif;">This parameters gets corrupted after some hours of unit functioning, looking into the code for "_Message_queue_Translate_core_message_queue_return_code", the input should be less that 6 value,
 however, the <span style="color: rgb(128, 0, 0);">return_code </span>returns 13, out of bound array and invalid.</div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; color: rgb(128, 0, 0); background-color: transparent;"><br></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent;">2. Another bad situation happens in "_Thread_queue_Timeout<span style="background-color: transparent;">" function, when calling "</span>_Thread_queue_Process_timeout<span style="background-color: transparent;">" - the input parameter "</span><span style="color: rgb(128, 0, 128);">Thread_Control</span><span style="color: rgb(192, 192, 192);"> </span>*the_thread<span style="background-color: transparent;">" has its </span><span style="color: rgb(128, 0, 0);">Wait</span>.<span style="color: rgb(128, 0, 0);">queue
 </span>NULL. No check on that queue pointer is made in <span style="background-color: transparent;">"</span>_Thread_queue_Process_timeout<span style="background-color: transparent;">" function, which tries to access a NULL pointer.</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;"><br></span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;">We are no experts in RTEMS functionality and we haven't modified anything in the current RTEMS code, however, we've noticed that the problem seems to appear when a thread consumes the messages from the queue, sets the queue to NULL, another thread calls queue insertion, wakes the first
 thread, however, its queue remains NULL.</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;"><br></span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;">We are making tests with patches for RTEMS version 4.10.2, the problem still exists, however it's diminished, meaning is appears after more functioning time for the infusing unit.</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;"><br></span></div><div style="font-style: normal; font-size: 15px; font-family:
 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;">Any help / idea / fast debug RTEMS method would be very much appreciated.</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;"><br></span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;">Thank you very much,</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;"><br></span></div><div style="font-style: normal; font-size: 15px;
 font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><span style="background-color: transparent;">Cezar Antohe</span></div><div style="font-style: normal; font-size: 15px; font-family: 'bookman old style', 'new york', times, serif; background-color: transparent; color: rgb(0, 0, 0);"><br></div></div></body></html>