-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Add a watchdog timer to catch OTA process getting stuck #16542
Merged
Merged
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
pullapprove
bot
requested review from
anush-apple,
austinh0,
Byungjoo-Lee,
bzbarsky-apple,
carol-apple,
cecille,
chrisdecenzo,
chshu,
chulspro,
Damian-Nordic,
dhrishi,
electrocucaracha,
franck-apple,
gjc13,
hawk248,
harsha-rajendran,
jelderton,
jepenven-silabs,
jmartinez-silabs,
kghost,
kpschoedel,
lazarkov,
LuDuda,
mrjerryjohns,
msandstedt,
mspang,
robszewczyk,
sagar-apple and
saurabhst
March 22, 2022 23:29
carol-apple
reviewed
Mar 23, 2022
carol-apple
reviewed
Mar 23, 2022
carol-apple
reviewed
Mar 23, 2022
carol-apple
reviewed
Mar 23, 2022
carol-apple
reviewed
Mar 23, 2022
PR #16542: Size comparison from b24efd9 to af0aa7f Increases above 0.2%:
Increases (26 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6)
Decreases (17 builds for cyw30739, k32w, linux, mbed, p6, telink)
Full report (27 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
…h OTA process getting stuck
- Remove HandleStateTransition() logic and move it back out to OTARequestor. - Added HandleIdleStateExit() in OTARequestorDriver to start Watchdog timer.
- Removed StopSelectedtimer() - Removed extra Reset() call. - Spelling errors.
- Changed StartPeriodicQueryTimer() call to StartSelectedTimer(SelectedTimer::kPeriodicQueryTimer).
PR #16542: Size comparison from 026e01d to 03ae043 Increases (5 builds for cyw30739, efr32, k32w, linux)
Full report (26 builds for cyw30739, efr32, esp32, k32w, linux, mbed, p6, telink)
|
carol-apple
reviewed
Mar 24, 2022
carol-apple
approved these changes
Mar 24, 2022
- In WatchdogTimerHandler(), just cancel download and reset regardless of which state OTA-R is stuck in. - In SendQueryImage(), remove duplicate call to StartSelectedTimer(SelectedTimer::kWatchdogTimer)
selissia
approved these changes
Mar 24, 2022
rochaferraz
pushed a commit
to rochaferraz/connectedhomeip
that referenced
this pull request
Mar 31, 2022
andrei-menzopol
pushed a commit
to andrei-menzopol/connectedhomeip
that referenced
this pull request
Apr 14, 2022
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.
Problem
Currently, there is no failsafe check to ensure the OTA process doesn't get stuck in a bad state.
Fixes: #16462
Change overview
Trigger a 6 hour watchdog timer whenever OTA Requestor transitions from idle state to a non-idle state. When the watchdog timer expires and detects OTA process is still stuck in a non-idle state, cancel any pending download, reset it back to idle state and restart the 24 hour query image periodic timer.
Testing