Closed
Bug 1017291
Opened 10 years ago
Closed 10 years ago
We should record rejected remote candidates in telemetry
Categories
(Core :: WebRTC: Networking, defect)
Core
WebRTC: Networking
Tracking
()
RESOLVED
FIXED
mozilla32
People
(Reporter: bwc, Assigned: bwc)
Details
Attachments
(1 file, 1 obsolete file)
In some of my testing, I've found that apprtc has a tendency to reorder the remote SDP and the remote trickle candidates, so that sometimes trickle candidates arrive first. In this case, we drop the candidates on the floor, which can cause ICE to fail. It would be nice to know how often remote trickle candidates are dropped.
Assignee | ||
Comment 1•10 years ago
|
||
Initial cut.
Assignee | ||
Updated•10 years ago
|
Assignee: nobody → docfaraday
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•10 years ago
|
||
Comment on attachment 8430425 [details] [diff] [review] Keep track of the number of errors in AddIceCandidate before ICE completes, and record this number in telemetry in the success and failure cases separately. Review of attachment 8430425 [details] [diff] [review]: ----------------------------------------------------------------- Note that I've deliberately only taken into account the number of errors before ICE completes; I don't want subsequent errors to add noise to the statistics.
Attachment #8430425 -
Flags: review?(ekr)
Comment 3•10 years ago
|
||
Comment on attachment 8430425 [details] [diff] [review] Keep track of the number of errors in AddIceCandidate before ICE completes, and record this number in telemetry in the success and failure cases separately. Review of attachment 8430425 [details] [diff] [review]: ----------------------------------------------------------------- Clearing the r? bit until I understand why this is 9. I'll r+ if there is a good answer. ::: media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h @@ +723,5 @@ > bool mHaveDataStream; > > // Holder for error messages from parsing SDP > std::vector<std::string> mSDPParseErrorMessages; > + unsigned int mAddCandidateErrorCount; Suggest using a concrete type like uint32_t ::: toolkit/components/telemetry/Histograms.json @@ +5272,5 @@ > + "expires_in_version": "never", > + "kind": "linear", > + "high": "10", > + "n_buckets": "9", > + "description": "The number of times AddIceCandidate failed on a given PeerConnection, given that ICE succeeded." I'm not an expert here, but why is this stopping at 9? Isn't it possible to have a lot more candidates?
Attachment #8430425 -
Flags: review?(ekr)
Assignee | ||
Comment 4•10 years ago
|
||
(In reply to Eric Rescorla (:ekr) from comment #3) > Comment on attachment 8430425 [details] [diff] [review] > Keep track of the number of errors in AddIceCandidate before ICE completes, > and record this number in telemetry in the success and failure cases > separately. > > Review of attachment 8430425 [details] [diff] [review]: > ----------------------------------------------------------------- > > Clearing the r? bit until I understand why this is 9. I'll r+ if there is a > good answer. > > ::: media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h > @@ +723,5 @@ > > bool mHaveDataStream; > > > > // Holder for error messages from parsing SDP > > std::vector<std::string> mSDPParseErrorMessages; > > + unsigned int mAddCandidateErrorCount; > > Suggest using a concrete type like uint32_t > If our coding convention for string stuff didn't force the use of format strings (if we ever want to printf this we have to cast or use an ugly macro), or if I actually cared about the particulars of type width here, I would agree. > ::: toolkit/components/telemetry/Histograms.json > @@ +5272,5 @@ > > + "expires_in_version": "never", > > + "kind": "linear", > > + "high": "10", > > + "n_buckets": "9", > > + "description": "The number of times AddIceCandidate failed on a given PeerConnection, given that ICE succeeded." > > I'm not an expert here, but why is this stopping at 9? Isn't it possible to > have a lot more candidates? This limit was mostly arbitrary, based on what kind of granularity I felt was actionable (what do we do differently if samples >9 fall into one bucket, or spread across more buckets?). But, buckets are basically free, and might make the histogram easier to look at, so I'm happy to add more. I just don't want to end up with a histogram with razor-thin bars because some weirdo managed to pump 2000 garbage candidates at us. I think any more than 30 starts to make the histogram hard to read, does that sound sane as a limit?
Assignee | ||
Comment 5•10 years ago
|
||
Now with more buckets
Assignee | ||
Updated•10 years ago
|
Attachment #8430425 -
Attachment is obsolete: true
Assignee | ||
Updated•10 years ago
|
Attachment #8430857 -
Flags: review?(ekr)
Comment 6•10 years ago
|
||
Comment on attachment 8430857 [details] [diff] [review] Keep track of the number of errors in AddIceCandidate before ICE completes, and record this number in telemetry in the success and failure cases separately. Review of attachment 8430857 [details] [diff] [review]: ----------------------------------------------------------------- lgtm
Attachment #8430857 -
Flags: review?(ekr) → review+
Assignee | ||
Comment 7•10 years ago
|
||
https://tbpl.mozilla.org/?tree=Try&rev=ca0b9f1e76ea
Comment 9•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/6fcbe7b1dec2
Keywords: checkin-needed
Comment 10•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/6fcbe7b1dec2
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in
before you can comment on or make changes to this bug.
Description
•