project-chip / project-chip/certification-tool
[Bug] TC-SU-2.2: Step 2 Can Time Out Because DUT May Still Be in Downloading When AnnounceOTAProvider Is Sent
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 83
- Forks
- 47
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 17
Description
Describe the bug
In TC-SU-2.2 (Handling Different QueryImageResponse Scenarios on Requestor), after Step 1 verifies that the DUT has entered Downloading and has progress, the test terminates the OTA Provider process and immediately proceeds to Step 2: it starts a new Provider (configured to return Busy) and sends AnnounceOTAProvider to the DUT.
At that time the DUT may still be in Downloading (the Step 1 download was interrupted when the Provider was closed, and the device only returns to Idle after BDX timeout or similar logic). The OTA Requestor driver only processes AnnounceOTAProvider when UpdateState is Idle; otherwise the command is ignored. As a result, the AnnounceOTAProvider sent in Step 2 can be ignored by the DUT, the test never sees DelayedOnQuery, and Step 2 fails with timeouts such as “Reached time-out without finding all expected report values”.
Steps to reproduce the behavior
- Run TC_SU_2_2 with the DUT as the OTA Requestor.
- Complete Step 1 successfully: Provider returns UpdateAvailable, DUT enters Downloading and reports progress.
- At the end of Step 1, terminate the Provider; the test then starts the Step 2 Provider and sends AnnounceOTAProvider.
- Observe: Step 2 times out waiting for DelayedOnQuery and the test fails; device logs may show “State is not kIdle, ignoring the AnnounceOTAProviders. State: 4” (State 4 is Downloading).
Expected behavior
After the step 1 completed, should wait until the update state changes to "idle" before start step 2. This may take about ten minutes.
Log files
No response
PICS file
No response
Screenshots
No response
Environment
No response
Additional Information
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the TC-SU-2.2 orchestration for Step 1 and Step 2, then trace how the OTA Provider is terminated and AnnounceOTAProvider is sent. Verify the UpdateState transition to Idle after Step 1 and ensure Step 2 begins only afterward, with the test reaching DelayedOnQuery without timing out.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100