-
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
OTA: Thread end device (Requestor) crashes if it cannot reach the Provider #14321
Comments
In this scenario the Provider is residing off the Thread network: |
@selissia should this issue be assigned to you as it's efr32? If not, can you help assign? |
@holbrookt Yes, this is a DNS issue not specific to EFR32. As such I initially assigned it to @vivien-apple but @woody-apple unassigned it, I'm not sure why. |
Maybe an automated script? Feel free to reassign if you think that's right |
… cannot reach the Provider (#14712) * Fix github issue #14321 * Updates from PR suggestions * Restyled by whitespace * Restyled by clang-format * Add verify or die calls to Discovery_ImplPlatform.cpp Co-authored-by: Restyled.io <[email protected]>
Fixed by the above PR |
Problem
Expected behavior: announce-ota-provider should error out when no Provider node ID has been registered. One reason that the Provider node ID would not be registered is if the provider has not been commissioned over thread
In a Thread network when the end device receives the Announce OTA Provider command and the Provider node ID indicated in that command is not reachable, the end device crashes. The function HandleNodeIdResolve in Discovery_ImplPlatform.cpp is passed a DnssdService pointer that contains incomplete information. Attributes mKey, mData contain null fields and mDataSize seems uninitialized.
Steps to reproduce:
chip-tool otasoftwareupdaterequestor announce-ota-provider [invalidId] 0 0 0 2 0
Or follow the steps in https://github.com/selissia/connectedhomeip/edit/master/examples/ota-requestor-app/efr32/README.md without commissioning the Provider.
Call stack in Ozone:
Hardfault register details:
Proposed Solution
Either a null check around the provider node ID fields, or an error code indicating that the provider has not been comissioned.
The text was updated successfully, but these errors were encountered: