Remove Timeout from Svc::FileDownlink - #4555
Merged
Merged
Conversation
thomas-bc
approved these changes
Dec 16, 2025
nathancheek
added a commit
to nathancheek/fprime
that referenced
this pull request
Jun 12, 2026
* Backport nasa#4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
nathancheek
added a commit
to nathancheek/fprime
that referenced
this pull request
Jun 12, 2026
* Backport nasa#4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
nathancheek
added a commit
to nathancheek/fprime
that referenced
this pull request
Jun 12, 2026
* Backport nasa#4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix * Update Ref topology to match changes to FileDownlink::config() --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
nathancheek
added a commit
to nathancheek/fprime
that referenced
this pull request
Jun 18, 2026
* Backport nasa#4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix * Update Ref topology to match changes to FileDownlink::config() --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
nathancheek
added a commit
to nathancheek/fprime
that referenced
this pull request
Jun 18, 2026
* Backport nasa#4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix * Update Ref topology to match changes to FileDownlink::config() --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
LeStarch
added a commit
that referenced
this pull request
Jun 27, 2026
* Backport #4555 to v3.6.x * Ignore returned buffers when in COOLDOWN mode, matching IDLE mode behavior * Spelling fix * Update Ref topology to match changes to FileDownlink::config() --------- Co-authored-by: M Starch <LeStarch@googlemail.com>
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 15, 2026
…Transfer declaration All three are leftovers from the timeout removal in nasa#4555: m_timeout and m_bufferSize are never written or read, and exitFileTransfer has no definition.
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 15, 2026
A downlink stuck in WAIT (or CANCEL) because the downstream component never returns the outstanding buffer produces no fault indication: pingIn still responds, so Svc.Health cannot see the failure. Add an optional stall timeout to configure(); when a downlink has waited that long for a buffer return, emit a DownlinkStalled warning once per wait. The default of 0 disables the warning, and existing configure() callers are unaffected. The warning is observational only. It triggers no automatic action, so it does not reintroduce the automatic timeout removed in nasa#4555; it tells operators that Reset may be needed. It is deliberately not count-throttled: the emission is already rate-limited to one per wait by construction, and a count throttle could be exhausted by a slow link and then stay silent through the very wedge the event exists to report. FileHandlingConfig gains a stallTimeout constant, defaulted to 0 and passed through by the FileHandling subtopology, so deployments can opt in by overriding config rather than by calling configure() a second time (which would hit ALREADY_CREATED on the file queue and assert at startup).
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 23, 2026
…Transfer declaration All three are leftovers from the timeout removal in nasa#4555: m_timeout and m_bufferSize are never written or read, and exitFileTransfer has no definition.
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 23, 2026
A downlink stuck in WAIT (or CANCEL) because the downstream component never returns the outstanding buffer produces no fault indication: pingIn still responds, so Svc.Health cannot see the failure. Add an optional stall timeout to configure(); when a downlink has waited that long for a buffer return, emit a DownlinkStalled warning once per wait. The default of 0 disables the warning, and existing configure() callers are unaffected. The warning is observational only. It triggers no automatic action, so it does not reintroduce the automatic timeout removed in nasa#4555; it tells operators that Reset may be needed. It is deliberately not count-throttled: the emission is already rate-limited to one per wait by construction, and a count throttle could be exhausted by a slow link and then stay silent through the very wedge the event exists to report. FileHandlingConfig gains a stallTimeout constant, defaulted to 0 and passed through by the FileHandling subtopology, so deployments can opt in by overriding config rather than by calling configure() a second time (which would hit ALREADY_CREATED on the file queue and assert at startup).
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 30, 2026
…Transfer declaration All three are leftovers from the timeout removal in nasa#4555: m_timeout and m_bufferSize are never written or read, and exitFileTransfer has no definition.
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Aug 30, 2026
A downlink stuck in WAIT (or CANCEL) because the downstream component never returns the outstanding buffer produces no fault indication: pingIn still responds, so Svc.Health cannot see the failure. Add an optional stall timeout to configure(); when a downlink has waited that long for a buffer return, emit a DownlinkStalled warning once per wait. The default of 0 disables the warning, and existing configure() callers are unaffected. The warning is observational only. It triggers no automatic action, so it does not reintroduce the automatic timeout removed in nasa#4555; it tells operators that Reset may be needed. It is deliberately not count-throttled: the emission is already rate-limited to one per wait by construction, and a count throttle could be exhausted by a slow link and then stay silent through the very wedge the event exists to report. FileHandlingConfig gains a stallTimeout constant, defaulted to 0 and passed through by the FileHandling subtopology, so deployments can opt in by overriding config rather than by calling configure() a second time (which would hit ALREADY_CREATED on the file queue and assert at startup).
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Sep 3, 2026
…Transfer declaration All three are leftovers from the timeout removal in nasa#4555: m_timeout and m_bufferSize are never written or read, and exitFileTransfer has no definition.
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Sep 3, 2026
A downlink stuck in WAIT (or CANCEL) because the downstream component never returns the outstanding buffer produces no fault indication: pingIn still responds, so Svc.Health cannot see the failure. Add an optional stall timeout to configure(); when a downlink has waited that long for a buffer return, emit a DownlinkStalled warning once per wait. The default of 0 disables the warning, and existing configure() callers are unaffected. The warning is observational only. It triggers no automatic action, so it does not reintroduce the automatic timeout removed in nasa#4555; it tells operators that Reset may be needed. It is deliberately not count-throttled: the emission is already rate-limited to one per wait by construction, and a count throttle could be exhausted by a slow link and then stay silent through the very wedge the event exists to report. FileHandlingConfig gains a stallTimeout constant, defaulted to 0 and passed through by the FileHandling subtopology, so deployments can opt in by overriding config rather than by calling configure() a second time (which would hit ALREADY_CREATED on the file queue and assert at startup).
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Sep 7, 2026
…Transfer declaration All three are leftovers from the timeout removal in nasa#4555: m_timeout and m_bufferSize are never written or read, and exitFileTransfer has no definition.
rvaccone
added a commit
to rvaccone/fprime
that referenced
this pull request
Sep 7, 2026
A downlink stuck in WAIT (or CANCEL) because the downstream component never returns the outstanding buffer produces no fault indication: pingIn still responds, so Svc.Health cannot see the failure. Add an optional stall timeout to configure(); when a downlink has waited that long for a buffer return, emit a DownlinkStalled warning once per wait. The default of 0 disables the warning, and existing configure() callers are unaffected. The warning is observational only. It triggers no automatic action, so it does not reintroduce the automatic timeout removed in nasa#4555; it tells operators that Reset may be needed. It is deliberately not count-throttled: the emission is already rate-limited to one per wait by construction, and a count throttle could be exhausted by a slow link and then stay silent through the very wedge the event exists to report. FileHandlingConfig gains a stallTimeout constant, defaulted to 0 and passed through by the FileHandling subtopology, so deployments can opt in by overriding config rather than by calling configure() a second time (which would hit ALREADY_CREATED on the file queue and assert at startup).
This file contains hidden or 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
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.
Change Description
Svc.FileDownlinkhas a buffer ownership bug that causes a buffer to be owned by multiple owners. This can cause unknown file downlink corruption.The fix has to be for timeout to wait for buffer return, which undermines the need for a timeout at all. Thus we remove the timeout.