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
At chip-tool prompt run pairing code 17 749701123365521327694
At chip-tool prompt run basic subscribe data-model-revision 1 100 17 0
Kill all-clusters-app.
At chip-tool prompt run basic subscribe data-model-revision 1 100 17 0 --timeout 3
We fail threading assertions:
[1659545395124] [27950:4732727] CHIP: [DL] Chip stack locking error at '../../../examples/chip-tool/third_party/connectedhomeip/src/transport/Session.h:66'. Code is unsafe/racy
The issue is that that command instance has live a ReadClient from the first command execution that is still figuring out that its subscription is gone and hence has not called OnDone or anything.
When the second command times out, we land in CHIPCommand::Run, have deferCleanup false (because DeferInteractiveCleanup() returned false, because mSubscriptionEstablished was false in the second subscribe command), call Cleanup(), this destroys the ReadClients and now we are running IM code on the wrong thread and everything will be bad.
Proposed Solution
Need to figure out how to do this cleanup properly.
The text was updated successfully, but these errors were encountered:
bzbarsky-apple
added a commit
to bzbarsky-apple/connectedhomeip
that referenced
this issue
Aug 3, 2022
Problem
Steps to reproduce:
chip-tool interactive start
pairing code 17 749701123365521327694
basic subscribe data-model-revision 1 100 17 0
basic subscribe data-model-revision 1 100 17 0 --timeout 3
We fail threading assertions:
The issue is that that command instance has live a ReadClient from the first command execution that is still figuring out that its subscription is gone and hence has not called
OnDone
or anything.When the second command times out, we land in
CHIPCommand::Run
, havedeferCleanup
false (becauseDeferInteractiveCleanup()
returned false, becausemSubscriptionEstablished
was false in the second subscribe command), call Cleanup(), this destroys theReadClients
and now we are running IM code on the wrong thread and everything will be bad.Proposed Solution
Need to figure out how to do this cleanup properly.
The text was updated successfully, but these errors were encountered: