versatica / mediasoup

Cutting Edge WebRTC Video Conferencing
https://mediasoup.org
ISC License
6.15k stars 1.12k forks source link

mediasoup crash #758

Closed ljwps closed 2 years ago

ljwps commented 2 years ago

IMPORTANT: We primarily use GitHub as an issue tracker. Please, use the mediasoup Discourse Group if you have questions or doubts or if you need support about mediasoup and its ecosystem:

https://mediasoup.discourse.group

Before asking any questions, please check the mediasoup official documentation:

https://mediasoup.org/documentation/

After the mediasoup 3 server and mediasoup-demov3 are started, use the browser to access the video call page of mediasoup-demov3, and the server crashes immediately

g++ 8.3.0 gcc 8.3.0 nodjs 16.13.2 CentOS7 python 3.8

``` mediasoup:Worker worker process running [pid:24474] +13ms mediasoup-demo-server:INFO creating Express app... +149ms mediasoup-demo-server:INFO running an HTTPS server... +6ms mediasoup-demo-server:INFO running protoo WebSocketServer... +18ms mediasoup-demo-server:INFO protoo connection request [roomId:crynvxjy, peerId:bfkgxxlt, address:192.168.83.115, origin:https://192.168.5.42:3000] +35s mediasoup-demo-server:INFO creating a new Room [roomId:crynvxjy] +1ms mediasoup-demo-server:INFO:Room create() [roomId:crynvxjy] +0ms mediasoup:Worker createRouter() +36s mediasoup:Channel request() [method:worker.createRouter, id:1] +36s mediasoup:Channel request succeeded [method:worker.createRouter, id:1] +1ms mediasoup:Router constructor() +0ms mediasoup:Router createAudioLevelObserver() +0ms mediasoup:Channel request() [method:router.createAudioLevelObserver, id:2] +1ms mediasoup:Channel request succeeded [method:router.createAudioLevelObserver, id:2] +1ms mediasoup:RtpObserver constructor() +0ms mediasoup:Router createDirectTransport() +2ms mediasoup:Channel request() [method:router.createDirectTransport, id:3] +1ms mediasoup:Channel request succeeded [method:router.createDirectTransport, id:3] +1ms mediasoup:Transport constructor() +0ms mediasoup:DirectTransport constructor() +0ms mediasoup:Transport produceData() +1ms mediasoup:Channel request() [method:transport.produceData, id:4] +1ms mediasoup:Channel request succeeded [method:transport.produceData, id:4] +0ms mediasoup:DataProducer constructor() +0ms mediasoup-demo-server:Room protoo Peer "request" event [method:getRouterRtpCapabilities, peerId:bfkgxxlt] +0ms mediasoup-demo-server:Room protoo Peer "request" event [method:createWebRtcTransport, peerId:bfkgxxlt] +62ms mediasoup:Router createWebRtcTransport() +77ms mediasoup:Channel request() [method:router.createWebRtcTransport, id:5] +76ms mediasoup:Channel request succeeded [method:router.createWebRtcTransport, id:5] +1ms mediasoup:Transport constructor() +77ms mediasoup:WebRtcTransport constructor() +0ms mediasoup:Transport pause() +1ms mediasoup:Channel request() [method:transport.enableTraceEvent, id:6] +1ms mediasoup:Channel request succeeded [method:transport.enableTraceEvent, id:6] +0ms mediasoup:Transport setMaxIncomingBitrate() [bitrate:1500000] +1ms mediasoup:Channel request() [method:transport.setMaxIncomingBitrate, id:7] +1ms mediasoup:Channel request succeeded [method:transport.setMaxIncomingBitrate, id:7] +1ms mediasoup-demo-server:Room protoo Peer "request" event [method:createWebRtcTransport, peerId:bfkgxxlt] +9ms mediasoup:Router createWebRtcTransport() +9ms mediasoup:Channel request() [method:router.createWebRtcTransport, id:8] +4ms mediasoup:Channel request succeeded [method:router.createWebRtcTransport, id:8] +0ms mediasoup:Transport constructor() +6ms mediasoup:WebRtcTransport constructor() +7ms mediasoup:Transport pause() +0ms mediasoup:Channel request() [method:transport.enableTraceEvent, id:9] +1ms mediasoup:Channel request succeeded [method:transport.enableTraceEvent, id:9] +0ms mediasoup:Transport setMaxIncomingBitrate() [bitrate:1500000] +1ms mediasoup:Channel request() [method:transport.setMaxIncomingBitrate, id:10] +1ms mediasoup:Channel request succeeded [method:transport.setMaxIncomingBitrate, id:10] +0ms mediasoup-demo-server:Room protoo Peer "request" event [method:join, peerId:bfkgxxlt] +5ms mediasoup:Transport consumeData() +4ms mediasoup:Channel request() [method:transport.consumeData, id:11] +5ms mediasoup:Channel request succeeded [method:transport.consumeData, id:11] +0ms mediasoup:DataConsumer constructor() +0ms mediasoup-demo-server:Room protoo Peer "request" event [method:connectWebRtcTransport, peerId:bfkgxxlt] +36ms mediasoup:WebRtcTransport connect() +40ms mediasoup:Channel request() [method:transport.connect, id:12] +34ms mediasoup:Channel request succeeded [method:transport.connect, id:12] +1ms mediasoup-demo-server:Room protoo Peer "request" event [method:connectWebRtcTransport, peerId:bfkgxxlt] +3ms mediasoup:WebRtcTransport connect() +4ms mediasoup:Channel request() [method:transport.connect, id:13] +3ms mediasoup:Channel request succeeded [method:transport.connect, id:13] +0ms mediasoup-demo-server:Room WebRtcTransport "sctpstatechange" event [sctpState:connecting] +12ms mediasoup-demo-server:Room protoo Peer "request" event [method:produce, peerId:bfkgxxlt] +1ms mediasoup:Transport produce() +51ms mediasoup:Channel request() [method:transport.produce, id:14] +14ms mediasoup:Channel request succeeded [method:transport.produce, id:14] +1ms mediasoup:Producer constructor() +0ms mediasoup:RtpObserver addProducer() +148ms mediasoup:Channel request() [method:rtpObserver.addProducer, id:15] +1ms mediasoup:Channel request succeeded [method:rtpObserver.addProducer, id:15] +1ms mediasoup-demo-server:Room WebRtcTransport "sctpstatechange" event [sctpState:connecting] +8ms mediasoup-demo-server:Room WebRtcTransport "sctpstatechange" event [sctpState:connected] +0ms mediasoup-demo-server:Room protoo Peer "request" event [method:produceData, peerId:bfkgxxlt] +9ms mediasoup:Transport produceData() +17ms mediasoup:Channel request() [method:transport.produceData, id:16] +13ms mediasoup-demo-server:Room WebRtcTransport "sctpstatechange" event [sctpState:connected] +1ms mediasoup:Channel request succeeded [method:transport.produceData, id:16] +0ms mediasoup:DataProducer constructor() +158ms mediasoup-demo-server:Room protoo Peer "request" event [method:produceData, peerId:bfkgxxlt] +2ms mediasoup:Transport produceData() +4ms mediasoup:Channel request() [method:transport.produceData, id:17] +3ms mediasoup:Channel request succeeded [method:transport.produceData, id:17] +0ms mediasoup:DataProducer constructor() +3ms mediasoup:Transport consumeData() +1ms mediasoup:Channel request() [method:transport.consumeData, id:18] +1ms mediasoup:Channel request succeeded [method:transport.consumeData, id:18] +0ms mediasoup:DataConsumer constructor() +72ms mediasoup-demo-server:Room protoo Peer "request" event [method:produce, peerId:bfkgxxlt] +2s mediasoup:Transport produce() +2s mediasoup:Channel request() [method:transport.produce, id:19] +2s mediasoup:ERROR:Worker (stderr) terminate called after throwing an instance of 'std::regex_error' +0ms mediasoup:ERROR:Worker (stderr) what(): regex_error +0ms mediasoup:Channel Producer Channel ended by the worker process +2ms mediasoup:Channel Consumer Channel ended by the worker process +1ms mediasoup:PayloadChannel Producer PayloadChannel ended by the worker process +38s mediasoup:PayloadChannel Consumer PayloadChannel ended by the worker process +0ms mediasoup:ERROR:Worker worker process died unexpectedly [pid:24454, code:null, signal:SIGABRT] +0ms mediasoup:Worker died() [error:Error: [pid:24454, code:null, signal:SIGABRT]] +3s mediasoup:Channel close() +1ms mediasoup:PayloadChannel close() +2ms mediasoup:Router workerClosed() +2s mediasoup:Transport routerClosed() +6ms mediasoup:DataProducer transportClosed() +2s mediasoup:DataConsumer transportClosed() +2s mediasoup:Transport routerClosed() +1ms mediasoup:Producer transportClosed() +2s mediasoup:DataProducer transportClosed() +1ms mediasoup:DataProducer transportClosed() +0ms mediasoup:Transport routerClosed() +1ms mediasoup:DataConsumer transportClosed() +3ms mediasoup:RtpObserver routerClosed() +2s mediasoup-demo-server:ERROR mediasoup Worker died, exiting in 2 seconds... [pid:24454] +0ms mediasoup-demo-server:ERROR:Room request failed:InvalidStateError: Channel closed at Object.close (/data/mediasoup-demo-3/server/node_modules/mediasoup/node/lib/Channel.js:169:29) at Channel.close (/data/mediasoup-demo-3/server/node_modules/mediasoup/node/lib/Channel.js:116:18) at Worker.workerDied (/data/mediasoup-demo-3/server/node_modules/mediasoup/node/lib/Worker.js:302:23) at ChildProcess. (/data/mediasoup-demo-3/server/node_modules/mediasoup/node/lib/Worker.js:141:22) at ChildProcess.emit (node:events:390:28) at ChildProcess.emit (node:domain:475:12) at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12) +0ms ```
![image](https://user-images.githubusercontent.com/18318466/149971074-7a58bd86-1a24-4ebf-b16a-633b23138615.png) ![image](https://user-images.githubusercontent.com/18318466/149971132-add738cc-5920-4bba-a3a5-12382b19b285.png)
nazar-pc commented 2 years ago
  mediasoup:ERROR:Worker (stderr) terminate called after throwing an instance of 'std::regex_error' +0ms
  mediasoup:ERROR:Worker (stderr)   what():  regex_error +0ms

This isn't good, not sure where it comes from exactly though, probably caused by bad input somewhere?

ibc commented 2 years ago

It should not happen with the demo since we control the value we pass to the worker. Said that I've seen regex similar issues in the past due to gcc version but AFAIR we already verify gcc version and require it to be higher than some value.

ljwps commented 2 years ago

It should not happen with the demo since we control the value we pass to the worker. Said that I've seen regex similar issues in the past due to gcc version but AFAIR we already verify gcc version and require it to be higher than some value.

Thank you for your reply

How should I solve this problem

ibc commented 2 years ago

Seems to be same as https://github.com/versatica/mediasoup/issues/391. Please take a look to it.