Comments (14)
Honestly there is no change since 3.12.12 that could have fix this issue. Let me reopen to not forget. I think we need a fuzzer test for this class.
from mediasoup.
- Which mediasoup version are you using?
- Can you repro? can you provide an STR?
- Please provide as much context info as you can.
from mediasoup.
@jmillan thanks for looking into it.
We are using version 3.12.12.
Unfortunately, it happens in a production environment therefore its harder to get detailed logs or STR for it.
It rarely happens but I can try to get some more info around it.
from mediasoup.
You should upgrade to latest release first, 3.12.12 is very old and the issue you are hitting might have been long fixed
from mediasoup.
Yes please, you're using quite an old version. Upgrade it as soon as you can.
Don't hesitate to reopen the issue if it comes out in the future.
from mediasoup.
thanks, fwiw there were no significant changes to RateCalculator.cpp over the last 2 years.
https://github.com/versatica/mediasoup/commits/v3/worker/src/RTC/RateCalculator.cpp
I suspect it might occur when
https://github.com/versatica/mediasoup/blob/v3/worker/src/RTC/RateCalculator.cpp#L27
nowMs - this->newestItemStartTime >= this->itemSizeMs
and
https://github.com/versatica/mediasoup/blob/v3/worker/src/RTC/RateCalculator.cpp#L32
this->newestItemIndex >= this->windowItems
and
this->oldestItemIndex == 0
probably just logging an error and resting the RateCalculator will be more appropriate error handling
from mediasoup.
probably just logging an error and resting the RateCalculator will be more appropriate error handling
Defensive programming hides real bugs. We don't do that. If something should never happen then it must never happen, otherwise it's a bug that needs to be fixed.
from mediasoup.
If there was a memory corruption somewhere, side-effects might be unexpected. This needs to be confirmed on latest version first.
from mediasoup.
probably just logging an error and resting the RateCalculator will be more appropriate error handling
Defensive programming hides real bugs. We don't do that. If something should never happen then it must never happen, otherwise it's a bug that needs to be fixed.
also true
from mediasoup.
If there was a memory corruption somewhere, side-effects might be unexpected. This needs to be confirmed on latest version first.
I am not sure how fast we can get these hosts on latest release. for now I will just patch it to suit our needs.
I'll let you know if I find more about this condition.
thanks
from mediasoup.
@gitamirp any news? I assumed you patched version 3.12.12 so it's not a problem for you anymore but perhaps you updated to latest version (without patching it)?
from mediasoup.
We patched 3.12.12 by using
MS_ASSERT( this->newestItemIndex != this->oldestItemIndex || this->oldestItemIndex == -1 || this->newestItemIndex, "newest index overlaps with the oldest one");
I will let you know if we run into this ASSERT again with this patch.
If you are interested we can add some logs when
this->newestItemIndex == this->oldestItemIndex
I believe that in 3.12.12 both newest && oldest can be zero at the same time but I don't have logs to support it.
from mediasoup.
Yes please. Add those logs and comment here when you get something. We will investigate this next week. Too busy these days.
from mediasoup.
Sure, we'll do. thanks
from mediasoup.
Related Issues (20)
- Multi-thread bug when using usrsctp in N Worker threads in Rust HOT 1
- opus dtx incorrectly judged HOT 7
- Possible missing break in H264_SVC::ParseSingleNalu()
- Must join all XxxConsumer classes into a single one
- set MS_LOG_DEV_LEVEL 3, lead to build errors HOT 1
- #define MS_LOG_DEV_LEVEL 3, build error HOT 1
- SeqManager<T>::SeqLowerThan() crashes when used as compare function in abseil set or map (only in debug mode) HOT 24
- Use uint64_t for containers with RTP seq number as key
- arm64 prebuilt binaries are replacing x64 ones HOT 4
- test-PipeTransport.ts randomly fails HOT 2
- RtpPacket::SetPayloadLength get wrong payloadLength HOT 2
- Possible memory leak HOT 34
- DataConsumer::SendMessage cause onQueuedCallback* cb leak and DATACONSUMER_SEND have no response HOT 1
- FeedbackRtpTransport.cpp may have an overflow mistake HOT 9
- Worker crash when closing `WebRtcServer` if there are TCP connections active HOT 2
- Mediasoup worker died, exiting in 2 seconds... HOT 2
- [Rust] Error log “XXX closing failed on drop: Channel already closed”
- Add interface for RTC::Shared, Channel::ChannelNotifier and ChannelMessageRegistrator HOT 3
- [Rust] Transport with only audio producer results in server-side transport cc is not created. HOT 2
- Bug Simulcast plainTransport -> webrtcTransport
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mediasoup.