RTEMS | SMP: Race condition in thread priority changes (#5159)

Chris Johns (@chris) gitlab at rtems.org
Wed Jan 8 01:51:50 UTC 2025




Chris Johns commented: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5159#note_117545


MR !320 has broken RTEMS with `RTEMS_DEBUG` enabled and it effects the release:

```
In file included from ../../../cpukit/include/rtems/score/isrlevel.h:44,
                 from ../../../cpukit/include/rtems/score/isr.h:41,
                 from ../../../cpukit/include/rtems/config.h:65,
                 from ../../../cpukit/include/rtems.h:59,
                 from ../../../bsps/include/bsp/default-initial-extension.h:40,
                 from ../../../bsps/powerpc/motorola_powerpc/include/bsp.h:29,
                 from ../../../bsps/shared/start/bspfatal-default.c:38:
../../../cpukit/include/rtems/score/priorityimpl.h: In function '_Priority_Set_action_node':
../../../cpukit/include/rtems/score/priorityimpl.h:338:31: error: 'struct <anonymous>' has no member named 'next'
  338 |   _Assert( aggregation->Action.next == NULL );
      |                               ^
../../../cpukit/include/rtems/score/assert.h:81:12: note: in definition of macro '_Assert'
   81 |        ( ( _e ) ? \
      |            ^~
../../../cpukit/include/rtems/score/priorityimpl.h: In function '_Priority_Set_action_type':
../../../cpukit/include/rtems/score/priorityimpl.h:353:31: error: 'struct <anonymous>' has no member named 'next'
  353 |   _Assert( aggregation->Action.next == NULL );
      |                               ^
../../../cpukit/include/rtems/score/assert.h:81:12: note: in definition of macro '_Assert'
   81 |        ( ( _e ) ? \
      |            ^~
../../../cpukit/include/rtems/score/priorityimpl.h: In function '_Priority_Set_action':
../../../cpukit/include/rtems/score/priorityimpl.h:371:31: error: 'struct <anonymous>' has no member named 'next'
  371 |   _Assert( aggregation->Action.next == NULL );
      |                               ^
../../../cpukit/include/rtems/score/assert.h:81:12: note: in definition of macro '_Assert'
   81 |        ( ( _e ) ? \
      |            ^~
```

A non-SMP build with `RTEMS_DEBUG` exposed the incorrect addition of debug assert statements in https://gitlab.rtems.org/rtems/rtos/rtems/-/commit/1c120470984c846f13ea7fb6c40c2e9e87c1784e.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5159#note_117545
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20250108/647a21cd/attachment.htm>


More information about the bugs mailing list