jvdrhoof / WebRTCSFU

0 stars 0 forks source link

Crash in SFU, probably while closing a connection #4

Closed jackjansen closed 2 months ago

jackjansen commented 2 months ago

Here's a crash I just got in the SFU. I think I was just shutting down the session.

Randomly assigning to @jvdrhoof

web-1  | WebRTCSFU: [Client #1] webSocketHandler: Setting tile priorities (1,0)
web-1  | WebRTCSFU: [Client #1] webSocketHandler: Closing a peer connection
web-1  | 
web-1  | [2024-07-09 09:57:32.883] debug: SFU 5cac9690-1967-452e-b7cf-7bd51bbbac1d stdout: WebRTCSFU: [Client #1] OnTrack: Track audio_2 error during read: EOF
web-1  | WebRTCSFU: [Client #1] OnTrack: Removing track audio_2
web-1  | WebRTCSFU: [Client #1] removeTrack: t.ID audio_2
web-1  | WebRTCSFU: [Client #1] removeTrack: Calling signalPeerConnections to inform other clients
web-1  | WebRTCSFU: [All clients] signalPeerConnections: attempting sync of available tracks
web-1  | WebRTCSFU: [Client #1] OnTrack: Track video_2_0 error during read: EOF
web-1  | WebRTCSFU: [Client #1] OnTrack: Removing track video_2_0
web-1  | WebRTCSFU: [Client #1] removeTrack: t.ID video_2_0
web-1  | WebRTCSFU: [Client #1] removeTrack: Calling signalPeerConnections to inform other clients
web-1  | WebRTCSFU: [All clients] signalPeerConnections: attempting sync of available tracks
web-1  | WebRTCSFU: [Client #1] OnTrack: Track video_2_1 error during read: EOF
web-1  | WebRTCSFU: [Client #1] OnTrack: Removing track video_2_1
web-1  | WebRTCSFU: [Client #1] removeTrack: t.ID video_2_1
web-1  | WebRTCSFU: [Client #1] removeTrack: Calling signalPeerConnections to inform other clients
web-1  | WebRTCSFU: [All clients] signalPeerConnections: attempting sync of available tracks
web-1  | WebRTCSFU: [Client #1] webSocketHandler: OnConnectionStateChange: Peer connection state has changed to closed
web-1  | WebRTCSFU: [Client #1] webSocketHandler: OnConnectionStateChange: Closed
web-1  | WebRTCSFU: [All clients] signalPeerConnections: attempting sync of available tracks
web-1  | WebRTCSFU: [Client #1] webSocketHandler: Closing a ThreadSafeWriter
web-1  | 
web-1  | [2024-07-09 09:57:32.883] debug: SFU 5cac9690-1967-452e-b7cf-7bd51bbbac1d stderr: http: panic serving 192.168.65.1:62204: runtime error: invalid memory address or nil pointer dereference
web-1  | goroutine 85 [running]:
web-1  | net/http.(*conn).serve.func1()
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:1854 +0xbf
web-1  | panic({0x9777a0, 0xe23bf0})
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/runtime/panic.go:890 +0x263
web-1  | github.com/pion/webrtc/v3.(*TrackLocalStaticRTP).Kind(0x4bdc9c?)
web-1  |    /home/runner/work/WebRTCSFU/build/go/pkg/mod/github.com/pion/webrtc/v3@v3.2.44/track_local_static.go:112 +0x18
web-1  | github.com/pion/webrtc/v3.(*RTPSender).ReplaceTrack(0xc0001f1d00, {0xadddc8, 0x0})
web-1  |    /home/runner/work/WebRTCSFU/build/go/pkg/mod/github.com/pion/webrtc/v3@v3.2.44/rtpsender.go:235 +0xd0
web-1  | main.addTrackforPeer({0xc0000d4fc0, 0xc00028dce0, 0x1, 0xc00028fda0, {0xe64830, 0x0, 0x0}}, {0xc00054c037, 0x9})
web-1  |    /home/runner/work/WebRTCSFU/WebRTCSFU/sfu/main.go:130 +0x12e
web-1  | main.receiveTracks({0xc0000d4fc0, 0xc00028dce0, 0x1, 0xc00028fda0, {0xe64830, 0x0, 0x0}}, {0xc00022e060, 0x1, 0x1})
web-1  |    /home/runner/work/WebRTCSFU/WebRTCSFU/sfu/main.go:184 +0x1ec
web-1  | main.websocketHandler({0xadb880, 0xc0001f4620}, 0xc000324e00)
web-1  |    /home/runner/work/WebRTCSFU/WebRTCSFU/sfu/main.go:602 +0x1b99
web-1  | net/http.HandlerFunc.ServeHTTP(0xc0001f0d80?, {0xadb880?, 0xc0001f4620?}, 0x40f24a?)
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:2122 +0x2f
web-1  | net/http.(*ServeMux).ServeHTTP(0xc0002a604f?, {0xadb880, 0xc0001f4620}, 0xc000324e00)
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:2500 +0x149
web-1  | net/http.serverHandler.ServeHTTP({0xc00028f1a0?}, {0xadb880, 0xc0001f4620}, 0xc000324e00)
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:2936 +0x316
web-1  | net/http.(*conn).serve(0xc0002003f0, {0xadbdb8, 0xc000146120})
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:1995 +0x612
web-1  | created by net/http.(*Server).Serve
web-1  |    /opt/hostedtoolcache/go/1.20.14/x64/src/net/http/server.go:3089 +0x5ed
web-1  | 
web-1  | [2024-07-09 09:57:33.411] debug: [DISCONNECT] Disconnected user sap reason: client namespace disconnect
web-1  | [2024-07-09 09:57:33.412] debug: Cleaning up transport 5cac9690-1967-452e-b7cf-7bd51bbbac1d for protocol webrtc
web-1  | [2024-07-09 09:57:33.412] debug: [LOGOUT] Destroyed 1 dangling sessions
web-1  | [2024-07-09 09:57:33.417] debug: SFU 5cac9690-1967-452e-b7cf-7bd51bbbac1d exit with code: 
jvdrhoof commented 2 months ago

This is an issue in our "old" implementation related to quality decision-making. Since we have significantly changed the implementation, this issue will no longer occur.