-
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
Avoid double-delete when a Darwin subscribeAttribute subscription errors out. #23557
Merged
bzbarsky-apple
merged 2 commits into
project-chip:master
from
bzbarsky-apple:callback-bridge-avoid-double-delete
Nov 14, 2022
Merged
Avoid double-delete when a Darwin subscribeAttribute subscription errors out. #23557
bzbarsky-apple
merged 2 commits into
project-chip:master
from
bzbarsky-apple:callback-bridge-avoid-double-delete
Nov 14, 2022
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
andy31415,
anush-apple,
arkq,
Byungjoo-Lee,
carol-apple,
chrisdecenzo,
chshu,
chulspro,
Damian-Nordic,
dhrishi,
electrocucaracha,
emargolis,
franck-apple,
gjc13,
harimau-qirex,
harsha-rajendran,
hawk248,
isiu-apple,
jelderton,
jepenven-silabs,
jmartinez-silabs,
jtung-apple,
kpschoedel,
lazarkov,
LuDuda,
msandstedt,
mspang,
rgoliver and
robszewczyk
November 9, 2022 14:11
pullapprove
bot
requested review from
saurabhst,
selissia,
tcarmelveilleux,
tecimovic,
tehampson,
vijs,
vivien-apple,
wbschiller,
woody-apple,
xylophone21 and
yufengwangca
November 9, 2022 14:11
PR #23557: Size comparison from 1ff789e to 88ffb2b Increases (7 builds for bl602, cc13x2_26x2, psoc6, qpg, telink)
Decreases (8 builds for bl702, cc13x2_26x2, cyw30739, esp32, psoc6, telink)
Full report (50 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, nrfconnect, psoc6, qpg, telink)
|
…ors out. Right now Darwin subscribeAttribute subscriptions do not support turning off auto-resubscribe, so never error out. But if we were to add that, we would end up with double delete: once when the error happens, and once from OnDone. This fix: 1) Ensures that we don't flag callback bridges as mKeepAlive until we have successfully sent a subscribe request. 2) Stops deleting on error if mKeepAlive is true. 3) Ensures the delete of the bridge from OnDone does not happen until after we have finished using the bridge object (e.g. to handle already-queued data or error notifications). We do this by queueing the delete to the same dispatch queue as the data/error notifications.
ksperling-apple
approved these changes
Nov 13, 2022
src/darwin/Framework/CHIP/templates/partials/MTRCallbackBridge.zapt
Outdated
Show resolved
Hide resolved
jtung-apple
approved these changes
Nov 14, 2022
bzbarsky-apple
force-pushed
the
callback-bridge-avoid-double-delete
branch
from
November 14, 2022 14:15
88ffb2b
to
cdc8984
Compare
Fast-tracking platform-specific change with platform owner review. |
PR #23557: Size comparison from 477dd4a to cdc8984 Increases (6 builds for bl602, cc13x2_26x2, cyw30739, nrfconnect, psoc6, telink)
Decreases (6 builds for bl602, bl702, cc13x2_26x2, esp32, psoc6, telink)
Full report (40 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
andy31415
approved these changes
Nov 14, 2022
adbridge
pushed a commit
to ARM-software/connectedhomeip
that referenced
this pull request
Nov 18, 2022
…ors out. (project-chip#23557) * Avoid double-delete when a Darwin subscribeAttribute subscription errors out. Right now Darwin subscribeAttribute subscriptions do not support turning off auto-resubscribe, so never error out. But if we were to add that, we would end up with double delete: once when the error happens, and once from OnDone. This fix: 1) Ensures that we don't flag callback bridges as mKeepAlive until we have successfully sent a subscribe request. 2) Stops deleting on error if mKeepAlive is true. 3) Ensures the delete of the bridge from OnDone does not happen until after we have finished using the bridge object (e.g. to handle already-queued data or error notifications). We do this by queueing the delete to the same dispatch queue as the data/error notifications. * Address review comment.
adbridge
pushed a commit
to ARM-software/connectedhomeip
that referenced
this pull request
Nov 18, 2022
…ors out. (project-chip#23557) * Avoid double-delete when a Darwin subscribeAttribute subscription errors out. Right now Darwin subscribeAttribute subscriptions do not support turning off auto-resubscribe, so never error out. But if we were to add that, we would end up with double delete: once when the error happens, and once from OnDone. This fix: 1) Ensures that we don't flag callback bridges as mKeepAlive until we have successfully sent a subscribe request. 2) Stops deleting on error if mKeepAlive is true. 3) Ensures the delete of the bridge from OnDone does not happen until after we have finished using the bridge object (e.g. to handle already-queued data or error notifications). We do this by queueing the delete to the same dispatch queue as the data/error notifications. * Address review comment.
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.
Right now Darwin subscribeAttribute subscriptions do not support turning off auto-resubscribe, so never error out. But if we were to add that, we would end up with double delete: once when the error happens, and once from OnDone.
This fix:
successfully sent a subscribe request.
we have finished using the bridge object (e.g. to handle already-queued data
or error notifications). We do this by queueing the delete to the same
dispatch queue as the data/error notifications.