nasa / osal

The Core Flight System (cFS) Operating System Abstraction Layer (OSAL)
Apache License 2.0
556 stars 217 forks source link

A bug in OS_TaskExit workwith vxworks #904

Closed sfzyk closed 3 years ago

sfzyk commented 3 years ago

very sorry to bother you i work with vxwork6.7 got an error when task exiting OS_Unlock_Global():730:ERROR: global 1 released by task 0xffffffff when owned by task

when exiting a task , in OS_TaskExit OS_ObjectIdFinalizeDelete(OS_SUCCESS, &token); will change final id to UNDEFINED

in OS_ObjectIdFinalizeDelete OS_ObjectIdTransactionFinish change task_record_active_id to final_id(i.e UNDEFINED) and then OS_Unlock_Global(token->obj_type)

but when OS_lock_Global(token->obj_type) is called task id is true task id OS_Unlock_Global(token->obj_type) get taskid from task record active id (i.e UNDEFINED) So produce an error

Maybe changing OS_ObjectIdFinalizeDelete(OS_SUCCESS, &token) to OS_ObjectIdFinalizeDelete(OS_ERROR, &token) help?

very very appreciate your reply

jphickey commented 3 years ago

Can you confirm which baseline/version of OSAL you are running?

This sounds like a duplicate of #645 which was fixed by PR #704 a couple months ago. If your baseline is older than this please update to latest and re-check.

sfzyk commented 3 years ago

Thanks! i'm running OSAL4.x and fixed in 5.0.0 by your pr :) !