fix(plugin-meetings): remove JMP deduplication logic#4773
fix(plugin-meetings): remove JMP deduplication logic#4773edvujic merged 3 commits intowebex:nextfrom
Conversation
|
@edvujic Were you able to replicate the issue, and verify that it doesnt occur anymore? |
packages/@webex/plugin-meetings/test/unit/spec/multistream/mediaRequestManager.ts
Show resolved
Hide resolved
packages/@webex/plugin-meetings/test/unit/spec/multistream/mediaRequestManager.ts
Show resolved
Hide resolved
packages/@webex/plugin-meetings/test/unit/spec/multistream/mediaRequestManager.ts
Show resolved
Hide resolved
Yes, I verified this by joining a multistream meeting and having a user leave and rejoin. From the logs, the SDK no longer does any client-side dedup filtering, every |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 07980e4ca4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
rarajes2
left a comment
There was a problem hiding this comment.
Approving with a few questions.
It would be nice to have a vidcast showcasing a sanity test on the meetings feature where multiple requests causing duplications are handled.
| `multistream:sendRequests --> detected duplicate WCME requests, skipping them... ` | ||
| ); | ||
| } | ||
| this.sendMediaRequestsCallback(streamRequests); |
There was a problem hiding this comment.
Q1: Is this the method which will handle the duplicate requests at @webex/json-multistream layer ?
Q2: The log multistream:sendRequests --> media requests sent. will now always get printed. Might be bit confusing. Maybe this.sendMediaRequestsCallback method can return some boolean and based on that we can say whether the request was actually sent or was discarded due to duplication.
There was a problem hiding this comment.
-
The dedup happens inside
JmpSession.sendRequests()in the @webex/web-client-media-engine package, not @webex/json-multistream directly. It compares each incoming request array againstthis.lastSentMediaRequestusingareStreamRequestsEqual, which does a comparison of policy, policy-specific info, stream IDs, max payload bitrate, and codec info. If identical, the request is dropped with a log at the WCME level. -
Fair enough... though I think making
sendMediaRequestsCallbackreturn a boolean is not practical here. TherequestMedia()method in WCME isvoidAnd even internally, the actual dedup + send may be deferred (queued intopendingJmpTasksif the data channel isn't open yet).
Co-authored-by: evujici <evujici@cisco.com>
COMPLETES SPARK-786722
This pull request addresses
JMP deduplication logic was temporarily implemented in
MediaRequestManageras a workaround. This responsibility has since been moved to the@webex/json-multistreamlayer, making the local deduplication code redundant.by making the following changes
previousStreamRequestsproperty fromMediaRequestManagercheckIsNewRequestsEqualToPrev()methodisEqual()methodclearPreviousRequests()methodsendRequests()to always forward requests to the callback without local dedup checksisEmptyimport from lodashclearPreviousRequests()call fromReconnectionManagermediaRequestManager.tsandreconnection-manager/index.jsto reflect the removalChange Type
The following scenarios were tested
@webex/plugin-meetings(yarn test:unit) — 3091 passing, 0 failingMediaRequestManagertests covering request creation, cancellation, commit, reset, trimming, and degradation still passReconnectionManagertests for multistream reconnection still pass after removingclearPreviousRequestsassertionsThe GAI Coding Policy And Copyright Annotation Best Practices
I certified that
Make sure to have followed the contributing guidelines before submitting.