-
-
Notifications
You must be signed in to change notification settings - Fork 1.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
RTC::Consumer::GetStats() | failed assertion `it != this->mapProfileRtpStream.end()': effective profile does not map to a rtp stream #196
Comments
Ping @jmillan |
Scenario: `Consumer::RemoveProfile()` is called with the profile pointed by `targetProfile`. The corresponding entry is erased from `mapProfileRtpStream` container. `targetProfile` is not being cleared, and here resides the bug. Few RTP packets later a packet with the profile pointed by `targetProfile` comes in `SendRtpPacket()`. We were waiting for it, so we make such profile the `effectiveProfile`. At this point `effectiveProfile` points to a profile which is not present in `mapProfileRtpStream` and this crash will happen on the next call to `GetStats()`.
So fixed in 6508861 |
It happens again when testing H264 simulcast:
|
@jmillan this happened testing Safari Tech locally. My Safari is somehow tired, it sends H264 with poor quality, so the remote Consumer (the one that receives Safari's H264 and the one who enabled |
What I see is:
BUT: this code in // There is an ongoing probation for this profile, disable it.
if (IsProbing() && this->probingProfile == profile)
{
// Stop probation.
StopProbation();
// Reset the RTP monitor so this probation doesn't affect the current profile.
this->rtpMonitor->Reset();
return;
}
if (this->effectiveProfile == profile)
{
SetEffectiveProfile(RtpEncodingParameters::Profile::NONE);
}
else if (this->targetProfile == profile)
{
this->targetProfile = this->effectiveProfile;
}
|
It may be fixed in e96379d. I've just removed a |
(sorry for the double commit, |
👍 Good catch |
The problem is that, when we call |
Let's close this until a refactor is done. |
I don't think the initial logs have any relationship.
The text was updated successfully, but these errors were encountered: