Chandan U commented: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5491#note_143417 ## 2nd BUG:- I compiled the testsuites for the configuration, **SMP=true** and **DEBUG=TRUE/FALSE**, **Before:** {width="225" height="141"} First file which generated the bug, {width="900" height="331"} GDB debug back tracing from the break point, {width="900" height="222"} function calls flow and relevant files checked, {width="743" height="600"} In smpmrsp01 , When semaphore is created , next == NULL and prev == garbage, and then it is trying to delete the semaphore created to test the deletion of semaphore. So it calls `test_mrsp_flush_error()` which eventually calls `__Semaphore__Free()` Which asks the generic Object Manager to free this specific object which eventually calls` _Chain_Append_unprotected()`. `_Chain_Append_unprotected()` contains `_Assert( _Chain_Is_node_off_chain( the_node ) )` in debug mode and since it asserts if prev != NULL which is true in this case, It throws an assertion error. Solution proposed, Since generic Object manager cannot be changed and the assertion is only in debug mode, So in semimpl.h below changes can be done, ``` #if defined( RTEMS_DEBUG ) _Semaphore_Set_flags( the_semaphore, 0 ); #endif ``` Since while adding the chain to Free_chain queue the connections are made sure, only in debug mode it checks for the prev==NULL, So to optimize the cpu performance, the semaphore prev is made null only in debug mode. **After:** {width="283" height="322"} The new failure is from new bug, and will be fixed next. Please guide me in this, Thank you. I have updated the MR with the first bug fix, https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1067 -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5491#note_143417 You're receiving this email because of your account on gitlab.rtems.org.
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
