1 | | The bug is related to this requirement: While the processor allocated to the thread is owned by a helping scheduler, while the processor is the only processor of the scheduler, when the processor is removed, the thread shall be blocked with respect to the scheduler. A test case for this requirement showed that a scheduler node change is incorrect in _Scheduler_SMP_Remove_processor(). |
| 1 | The following error condition is currently not checked by rtems_scheduler_remove_processor(): While an attempt is made to remove a processor from a scheduler, while the processor is the only processor owned by the scheduler, if a thread exists which uses the scheduler as a helping scheduler, then shall not be removed. |
| 2 | |
| 3 | The reason is that ask for help requests and withdraw node requests are processed asynchronously in any order. An ask for help request carried out on a scheduler without a processor is undefined behaviour. |