-
Notifications
You must be signed in to change notification settings - Fork 207
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
Fix #1544, add time get reference error bit #1593
Merged
astrogeco
merged 1 commit into
nasa:integration-candidate
from
jphickey:fix-1544-time-referr-bit
Jun 10, 2021
Merged
Fix #1544, add time get reference error bit #1593
astrogeco
merged 1 commit into
nasa:integration-candidate
from
jphickey:fix-1544-time-referr-bit
Jun 10, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Use one of the unused time state bits to indicate if an error has occurred where CFE_TIME_GetReference was not able to get a consistent copy of the reference state data. In a functional system this should never occur - there should be at most one retry, which only happens in the event there was a burst of updates (more than 4) concurrently with reading the structure. The previous implementation did not report or handle the condition at all, this at least sets a TLM status bit and returns a reference struct filled with all zeros.
jphickey
force-pushed
the
fix-1544-time-referr-bit
branch
from
June 1, 2021 17:40
02b6cf9
to
69b0940
Compare
skliper
approved these changes
Jun 1, 2021
jphickey
added
the
CCB:Ready
Ready for discussion at the Configuration Control Board (CCB)
label
Jun 1, 2021
CCB:2021-06-02 APPROVED |
astrogeco
added
CCB:Approved
Indicates code review and approval by community CCB
and removed
CCB:Ready
Ready for discussion at the Configuration Control Board (CCB)
labels
Jun 2, 2021
astrogeco
added a commit
to nasa/cFS
that referenced
this pull request
Jun 10, 2021
nasa/cFE#1566, Simplify CFE_FS_SetTimestamp and fix syslog typo nasa/cFE#1592, Removed redundant check/set of CFE_CPU_ID_VALUE nasa/cFE#1593, add time get reference error bit nasa/osal#1063, const correct OS_SelectFdIsSet
This was referenced Jun 15, 2021
astrogeco
added a commit
to nasa/cFS
that referenced
this pull request
Jun 17, 2021
nasa/cFE#1619 - cfe v6.8.0-rc1+dev693 nasa/osal#1076 - osal v5.1.0-rc1+dev530 nasa/PSP#296 - psp v1.5.0-rc1+dev118 *Documentation Updates:* nasa/cFE#1598, Updated FS Read/WriteHeader API return documentation nasa/cFE#1601, Document CFE_ES_RunLoop increment task counter behavior nasa/cFE#1602, Document CFE_TBL_Unregister use-case nasa/cFE#1603, Update version description per current design *Standardize docs generation:* nasa/cFE#1615, standardize on "docs" subdirectory nasa/osal#1071, rename doc to docs nasa/PSP#294, rename doc to docs *Coding Standard:* nasa/osal#1042 nasa/PSP#292 **Mutex for UTAssert** nasa/cFE#1596, provide CFE assert lock/unlock nasa/osal#1065, add mutex lock around UtAssert globals *Resolve API-UT discrepancies:* nasa/osal#1055, idmap API nasa/osal#1056, file API nasa/osal#1057, filesys API nasa/osal#1060, socket API nasa/osal#1064, select API **Other cFE ixes** nasa/cFE#1566, Simplify CFE_FS_SetTimestamp and fix syslog typo nasa/cFE#1592, Removed redundant check/set of CFE_CPU_ID_VALUE nasa/cFE#1593, add time get reference error bit nasa/cFE#1600, Add workflow to build cFE documentation nasa/cFE#1609, Requirements updates nasa/cFE#1610, ES/ResourceID documentation cleanup nasa/cFE#1613, allow multiple sources in add_cfe_coverage_test nasa/cFE#1586, add ES Misc Functional test nasa/cFE#1607, add Mempool functional tests nasa/cFE#1605, Clean/simplify version header and reporting nasa/cFE#1612, doxygen cleanup nasa/cFE#1611, Prepend system log messages with function name nasa/osal#1063, const correct OS_SelectFdIsSet nasa/osal#1073, Fix OS_Select doxygen errors nasa/osal#1073, Add missing OS_Select param doc nasa/osal#1067, Add Workflow to build and verify OSAL API Guide nasa/osal#1070, add detail design template nasa/osal#1072, Update error codes and documentation nasa/osal#1075, Increase UT object limit for testing Co-authored-by: Jacob Hageman <skliper@users.noreply.github.com> Co-authored-by: Joseph Hickey <jphickey@users.noreply.github.com> Co-authored-by: Ariel Adams <ArielSAdamsNASA@users.noreply.github.com> Co-authored-by: Alex Campbell <zanzaben@users.noreply.github.com> Co-authored-by: Jose F Martinez Pedraza <pepepr08@users.noreply.github.com>
astrogeco
added a commit
to nasa/cFS
that referenced
this pull request
Jun 17, 2021
nasa/cFE#1619 - cfe v6.8.0-rc1+dev693 nasa/osal#1076 - osal v5.1.0-rc1+dev530 nasa/PSP#296 - psp v1.5.0-rc1+dev118 *Documentation Updates:* nasa/cFE#1598, Updated FS Read/WriteHeader API return documentation nasa/cFE#1601, Document CFE_ES_RunLoop increment task counter behavior nasa/cFE#1602, Document CFE_TBL_Unregister use-case nasa/cFE#1603, Update version description per current design *Standardize docs generation:* nasa/cFE#1615, standardize on "docs" subdirectory nasa/osal#1071, rename doc to docs nasa/PSP#294, rename doc to docs *Coding Standard:* nasa/osal#1042 nasa/PSP#292 **Mutex for UTAssert** nasa/cFE#1596, provide CFE assert lock/unlock nasa/osal#1065, add mutex lock around UtAssert globals *Resolve API-UT discrepancies:* nasa/osal#1055, idmap API nasa/osal#1056, file API nasa/osal#1057, filesys API nasa/osal#1060, socket API nasa/osal#1064, select API **Other cFE Fixes** nasa/cFE#1566, Simplify CFE_FS_SetTimestamp and fix syslog typo nasa/cFE#1592, Removed redundant check/set of CFE_CPU_ID_VALUE nasa/cFE#1593, add time get reference error bit nasa/cFE#1600, Add workflow to build cFE documentation nasa/cFE#1609, Requirements updates nasa/cFE#1610, ES/ResourceID documentation cleanup nasa/cFE#1613, allow multiple sources in add_cfe_coverage_test nasa/cFE#1586, add ES Misc Functional test nasa/cFE#1607, add Mempool functional tests nasa/cFE#1605, Clean/simplify version header and reporting nasa/cFE#1612, doxygen cleanup nasa/cFE#1611, Prepend system log messages with function name **Other osal Fixes** nasa/osal#1063, const correct OS_SelectFdIsSet nasa/osal#1073, Fix OS_Select doxygen errors nasa/osal#1073, Add missing OS_Select param doc nasa/osal#1067, Add Workflow to build and verify OSAL API Guide nasa/osal#1070, add detail design template nasa/osal#1072, Update error codes and documentation nasa/osal#1075, Increase UT object limit for testing Co-authored-by: Jacob Hageman <skliper@users.noreply.github.com> Co-authored-by: Joseph Hickey <jphickey@users.noreply.github.com> Co-authored-by: Ariel Adams <ArielSAdamsNASA@users.noreply.github.com> Co-authored-by: Alex Campbell <zanzaben@users.noreply.github.com> Co-authored-by: Jose F Martinez Pedraza <pepepr08@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe the contribution
Use one of the unused time state bits to indicate if an error has occurred where CFE_TIME_GetReference was not able to get a consistent copy of the reference state data.
In a functional system this should never occur - there should be at most one retry, which only happens in the event there was a burst of updates (more than 4) concurrently with reading the structure.
The previous implementation did not report or handle the condition at all, this at least sets a TLM status bit and returns a reference struct filled with all zeros.
Fixes #1544
Testing performed
Build and sanity check CFE, run all unit tests
Check coverage report to ensure the new tests are being executed and confirm that the read error flag gets set, and the output state is all 0 in that case.
Force the error to occur during a syslog call and confirm the timestamp gets set, e.g.
Expected behavior changes
If CFE_TIME_GetReference was ever not able to get a valid reference structure, it outputs all zeros and the "REFERR" bit (0x0010) will be set in the output TLM structure until the system is rebooted.
System(s) tested on
Ubuntu
Additional context
This solution was chosen over an event/syslog because both of those will also get the time, thereby introducing a recursive loop if the error happens again.
By zero-filling the structure the output is also identifiable; i.e. if the date "1980-001-00:00:00.00000" ever appears in a log file, failure of CFE_TIME_GetReference is really the only way a timestamp like that is possible. Without this change the time data would be variable/unpredicatable.
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.