Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osal Integration candidate: 2021-05-25 #1050

Merged
merged 5 commits into from
May 26, 2021
Merged

Conversation

astrogeco
Copy link
Contributor

@astrogeco astrogeco commented May 24, 2021

Context

Part of nasa/cFS#260

Tests

osal Checks https://github.com/nasa/osal/pull/1050/checks
cFS Bubdle Checks https://github.com/nasa/cfs/pull/260/checks

Description

PR #1026

Fix #991, Add count sem timeout test

PR #1028

Fix #1027, defer cancellation when BSP locked

Removes chance of deadlock by ensuring OS_TaskGetId returns the task ID it knows about, regardless of whether the task is pending cancellation or not. Defers cancellation of the task while the BSP is locked, ensure it reaches the unlock, then restores the previous cancel state.

Fixes a bogus debug message about unlocking from the wrong task if the task is pending delete.

Authors

@jphickey
@zanzaben

zanzaben and others added 4 commits May 19, 2021 08:43
Resolves two related issues:
- OS_TaskGetId does not return a valid value for tasks where cancellation
  is pending, but they are still running.  This in turn is likely to trigger
  other (bogus) debug checks which invoke OS_DEBUG and in turn do console writes.
- The console write itself is a cancellation point, which is now done while
  holding a BSP mutex.  If canceled here, then the mutex is not released.

Solution is in two parts:
- OS_TaskGetId should return the task ID it knows about, regardless of whether
  the task is pending cancellation or not.
- Defer cancellation of the task while the BSP is locked, ensure it reaches the
  unlock, then restore the previous cancel state.
Fix #1027, defer cancellation when BSP locked
astrogeco added a commit to nasa/cFS that referenced this pull request May 24, 2021
Combines:

- nasa/cFE#1568
- nasa/osal#1050

Includes:

- nasa/cFE#1524, add printf format casts
- nasa/cFE#1520, accept "NULL" as entry point
- nasa/cfe #1549, add capability to generate multiple tables

- nasa/osal#1026, Add count sem timeout test
@astrogeco astrogeco marked this pull request as ready for review May 26, 2021 03:24
@astrogeco astrogeco merged commit 6776050 into main May 26, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request May 26, 2021
Combines:

- cfe v6.8.0-rc1+dev593 (nasa/cFE#1568)
- osal v5.1.0-rc1+dev458 (nasa/osal#1050)

Includes:

- nasa/cFE#1524, add printf format casts
- nasa/cFE#1520, accept "NULL" as entry point
- nasa/cfe #1549, add capability to generate multiple tables
- nasa/cFE#1551, fixes discrepancies (return type, parameter names, etc) between function protoypes and implementation. Updates stubs accordingly

- nasa/osal#1026, Add count sem timeout test
- nasa/osal#1026, defer cancellation when BSP locked
@skliper skliper added this to the 6.0.0 milestone Sep 24, 2021
jphickey pushed a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants