You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Start a new commissioning and make it failing (device offline)
At this point:
The first commissioning will be stopped, but some variables are not cleaned
The second commissioning will never be informed about failures via pairing delegate, because mWaitingForPASE keep the old value (true), so when we arrive in the function SetUpCodePairer::OnDeviceDiscoveredTimeoutCallback(), the function pairer->mCommissioner->OnSessionEstablishmentError(err); is never called.
void SetUpCodePairer::OnDeviceDiscoveredTimeoutCallback(System::Layer * layer, void * context)
{
ChipLogError(Controller, "Discovery timed out");
auto * pairer = static_cast<SetUpCodePairer *>(context);
ChipLogProgress(Controller, " -> StopConnectOverBle()");
LogErrorOnFailure(pairer->StopConnectOverBle());
ChipLogProgress(Controller, " -> StopConnectOverIP()");
LogErrorOnFailure(pairer->StopConnectOverIP());
ChipLogProgress(Controller, " -> StopConnectOverSoftAP()");
LogErrorOnFailure(pairer->StopConnectOverSoftAP());
ChipLogProgress(Controller, " -> pairer->mWaitingForPASE = %d", pairer->mWaitingForPASE);
ChipLogProgress(Controller, " -> pairer->mDiscoveredParameters.empty()");
if (!pairer->mWaitingForPASE && pairer->mDiscoveredParameters.empty())
{
ChipLogProgress(Controller, " -> ready to notify..");
// We're not waiting on any more PASE attempts, and we're not going to
// discover anything at this point, so we should just notify our
// listener.
CHIP_ERROR err = pairer->mLastPASEError;
if (err == CHIP_NO_ERROR)
{
err = CHIP_ERROR_TIMEOUT;
}
ChipLogProgress(Controller, " -> OnSessionEstablishmentError()..");
pairer->mCommissioner->OnSessionEstablishmentError(err);
ChipLogProgress(Controller, " -> Done.");
}
}
Note: There are probably more variables that are not cleaned.
Bug prevalence
Everytime
GitHub hash of the SDK that was being used
v1.0.0
Platform
other
Platform Version(s)
Linux
Anything else?
This problem is just "hard" to reproduce because:
With chip-tool, by construction you can't start a new command if the previous one is not finished (also in interactive mode)
So if the "StopPairing()" was accessible you will not be able to call it ..
The unique way to reproduce is to modify chip-tool, or use your own commissioner..
Thats the unique difficulty to reproduce the problem
The text was updated successfully, but these errors were encountered:
Reproduction steps
This isssue is similar to #25708
At this point:
mWaitingForPASE
keep the old value (true), so when we arrive in the functionSetUpCodePairer::OnDeviceDiscoveredTimeoutCallback()
, the function pairer->mCommissioner->OnSessionEstablishmentError(err); is never called.Note: There are probably more variables that are not cleaned.
Bug prevalence
Everytime
GitHub hash of the SDK that was being used
v1.0.0
Platform
other
Platform Version(s)
Linux
Anything else?
This problem is just "hard" to reproduce because:
The unique way to reproduce is to modify chip-tool, or use your own commissioner..
Thats the unique difficulty to reproduce the problem
The text was updated successfully, but these errors were encountered: