Closed didishe90 closed 3 years ago
Merging #662 (f74bbc6) into master (2468803) will increase coverage by
15.92%
. The diff coverage is0.00%
.
@@ Coverage Diff @@
## master #662 +/- ##
===========================================
+ Coverage 54.16% 70.09% +15.92%
===========================================
Files 329 484 +155
Lines 57161 87455 +30294
===========================================
+ Hits 30962 61301 +30339
+ Misses 26199 26154 -45
Impacted Files | Coverage Δ | |
---|---|---|
...les/data-management/Current/SubscriptionClient.cpp | 84.58% <0.00%> (+76.95%) |
:arrow_up: |
src/test-apps/schema/nest/test/trait/TestETrait.h | 55.55% <0.00%> (-44.45%) |
:arrow_down: |
src/lib/profiles/time/WeaveTime.h | 60.00% <0.00%> (-40.00%) |
:arrow_down: |
src/lib/core/WeaveCircularTLVBuffer.h | 62.50% <0.00%> (-37.50%) |
:arrow_down: |
src/lib/support/logging/WeaveLogging.cpp | 56.86% <0.00%> (-19.33%) |
:arrow_down: |
...i/security-support/native/WeaveSecuritySupport.cpp | 57.89% <0.00%> (-15.44%) |
:arrow_down: |
...iles/data-management/Current/LoggingManagement.cpp | 78.02% <0.00%> (-14.07%) |
:arrow_down: |
src/lib/support/PersistedCounter.cpp | 79.24% <0.00%> (-10.12%) |
:arrow_down: |
src/lib/core/WeaveTLVWriter.cpp | 85.53% <0.00%> (-7.42%) |
:arrow_down: |
src/lib/profiles/security/WeaveSig.cpp | 87.25% <0.00%> (-5.55%) |
:arrow_down: |
... and 280 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 2468803...f74bbc6. Read the comment docs.
The change looks reasonable in that it is good to set the BIndingCallback at InitiateSubscription. SubscribeCancel is not that common from the publisher and, especially since it takes a slightly different path than when the Client terminates the subscription, we need to ensure the Binding is initialized correctly. Approving this to have the changes in. We would need a test case around this path.
SubscriptionClient is written in a way that it's not released upon abort. When peer send a "cancel subscription" request, SubscriptionClient is reset to initiated state and is going to be reused by the next subscription attempt. However, SubscriptionClient only sets the protocol callback on its binding upon init(), which doesn't happen when the same subscriptionClient is reused for the second (and new) subscription attempt. In recent tests, we found that some application resets binding during AbortSubscription. In some corner cases, when subscriptionClient is reused for second subscription, protocol callback is not set for its binding. We should double check binding has valid protocol callback when InitiateSubscription() happens. This PR is also a temporary fix to unblock cancel/re-subscribe for some application.
We might also consider release subscriptionClient upon "cancel" to align with this: https://github.com/openweave/openweave-core/blob/9f9d2450ba3308f16cc729324801992d37130813/src/lib/profiles/data-management/Current/SubscriptionClient.h#L446