Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5747
The output thread of a regulator takes messages from the queue until the queue is empty or it reaches the count of the period. An empty queue answers `RTEMS_UNSATISFIED` and the loop takes that answer as the end of the deliveries of this period. The thread also asserts that the answer is `RTEMS_SUCCESSFUL`, so a debug build ends `regulator01` with a failed assertion. `rtems_regulator_create()` calls `_Regulator_Free_helper()` on every error path. The helper deletes the task, the message queue and the partition without a check. An error before the create of one of them leaves its identifier at zero, the delete then returns `RTEMS_INVALID_ID` and a debug build ends `regulator01` with a failed assertion. The helper also loses the storage of the message queue where the construct of the queue failed. The output thread ends itself where it cannot create its period. The helper then deletes a task which no longer exists and hits the same assertion. Found while running the test suite with `RTEMS_DEBUG`. This description was created with Claude Code assistance. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5747 You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-f2qi42z74ivz2fjorc3du7rtn-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
