-
Notifications
You must be signed in to change notification settings - Fork 55
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
Potential regression in v2.2.5, indefinitely stuck packetio.(*Buffer).Read
#298
Comments
do you have two goroutines to read a single |
@cnderrauber I don't believe so 🤔 . We go into a standard read loop inside the |
Which client are you using to send the rtp tracks? From your description that you had seen
It is hard to make sure remote peer start sending before negotiation is completed, we need to make |
@cnderrauber This is reproducing with two clients (both Chrome Linux
Yes, I've seen this before and it seemed mostly benign. I am also fairly certain we set the local description before sending out any answer through the signaling channel. |
So there's no close called in you reproduce steps? Then there might be another reason to cause the halt. The change seems unlikely cause other deaklock except concurrently reading, can you replace transport version to previous one in your go mod to try to reproduce the issue to confirm it is caused by this change? |
Correct. Closing the session does not unblock the Read, but at that point, the main issue is already ongoing.
Before opening this issue I did exactly that and bisected to the mentioned commit. Of course, I can give it another try. |
I can confirm 465cf31 to be the last working commit.
I'll look deeper into this but nothing stands out at the moment unless the concurrency is coming from pion internals. |
@cnderrauber It seems like in the reproducing case, we have at least three goroutines trying to read from the track, in the following order:
Finally the OnTrack handler on the application side which is expected.
|
It sounds like the track is closed unexpectedly then packet fires simucalst probe for unknown ssrc, can you confirm there is no close method called or sdp negotiation make the transceiver go to inactive by print all the sdps? |
Yeah, something is likely happening due to the video track being part of the offer because in an audio tracks only scenario I can't reproduce this. Here's the full sequence of the affected client's SDP exchange: Offer (client)v=0
o=- 1284299247372039849 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
Answer (pion)
v=0
o=- 3154593525473217347 1721313512 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 CB:44:8D:F0:37:41:1E:B5:EA:37:D3:63:63:43:F1:A4:95:2C:90:93:7B:56:07:C6:BC:8A:36:C7:CF:76:62:F0
a=extmap-allow-mixed
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:active
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
Offer (pion)
v=0
o=- 3154593525473217347 1721313513 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 CB:44:8D:F0:37:41:1E:B5:EA:37:D3:63:63:43:F1:A4:95:2C:90:93:7B:56:07:C6:BC:8A:36:C7:CF:76:62:F0
a=extmap-allow-mixed
a=group:BUNDLE 0 1
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=candidate:2878742611 1 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:2878742611 2 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:1923487681 1 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:1923487681 2 udp 2130706431 192.168.254.1 30443 typ host
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:1
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=ssrc:1694965936 cname:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=ssrc:1694965936 mslabel:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 label:voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=sendrecv
Answer (client)
v=0
o=- 1284299247372039849 3 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 58329 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.254.1
a=candidate:2912308788 1 udp 2122194687 192.168.254.1 58329 typ host generation 0 network-id 1
a=candidate:3698760548 1 udp 2122129151 172.17.0.1 60263 typ host generation 0 network-id 2
a=candidate:1535142394 1 udp 2122063615 192.168.1.64 56602 typ host generation 0 network-id 3
a=candidate:3446450365 1 udp 2121998079 100.104.198.120 34093 typ host generation 0 network-id 4
a=candidate:4270152963 1 udp 2122265343 fd7a:115c:a1e0:ab12:4843:cd96:6268:c678 52469 typ host generation 0 network-id 5
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:passive
a=mid:0
a=sctp-port:5000
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:passive
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
Offer (pion)
v=0
o=- 3154593525473217347 1721313514 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 CB:44:8D:F0:37:41:1E:B5:EA:37:D3:63:63:43:F1:A4:95:2C:90:93:7B:56:07:C6:BC:8A:36:C7:CF:76:62:F0
a=extmap-allow-mixed
a=group:BUNDLE 0 1 2
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=candidate:2878742611 1 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:2878742611 2 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:1923487681 1 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:1923487681 2 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:233762139 1 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:233762139 2 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:2975927411 1 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:2975927411 2 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:1952023002 1 udp 2130706431 192.168.1.64 30443 typ host
a=candidate:1952023002 2 udp 2130706431 192.168.1.64 30443 typ host
a=candidate:375738803 1 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:375738803 2 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:3478480417 1 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:3478480417 2 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:2954730683 1 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:2954730683 2 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:210926995 1 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:210926995 2 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:3383423034 1 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=candidate:3383423034 2 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=end-of-candidates
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:1
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=ssrc:1694965936 cname:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=ssrc:1694965936 mslabel:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 label:voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=sendrecv
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:2
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 transport-cc
a=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=ssrc:2095059163 cname:p7ytoh9j5i8hxf3h7zrmg7491o
a=ssrc:2095059163 msid:p7ytoh9j5i8hxf3h7zrmg7491o screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=ssrc:2095059163 mslabel:p7ytoh9j5i8hxf3h7zrmg7491o
a=ssrc:2095059163 label:screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=msid:p7ytoh9j5i8hxf3h7zrmg7491o screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=sendrecv
Answer (client)
SDP:v=0
o=- 1284299247372039849 4 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 58329 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.254.1
a=candidate:2912308788 1 udp 2122194687 192.168.254.1 58329 typ host generation 0 network-id 1
a=candidate:3698760548 1 udp 2122129151 172.17.0.1 60263 typ host generation 0 network-id 2
a=candidate:1535142394 1 udp 2122063615 192.168.1.64 56602 typ host generation 0 network-id 3
a=candidate:3446450365 1 udp 2121998079 100.104.198.120 34093 typ host generation 0 network-id 4
a=candidate:4270152963 1 udp 2122265343 fd7a:115c:a1e0:ab12:4843:cd96:6268:c678 52469 typ host generation 0 network-id 5
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:passive
a=mid:0
a=sctp-port:5000
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:passive
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:passive
a=mid:2
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendrecv
a=msid:- 914c9c62-fd70-40a8-9ded-db002c8324c9
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=ssrc:1872051997 cname:LU26xme7tGsQzW+c
Offer (client)
v=0
o=- 1284299247372039849 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS ee850ccc-ff46-4fa0-b097-3a8d839278fe
m=application 58329 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.254.1
a=candidate:2912308788 1 udp 2122194687 192.168.254.1 58329 typ host generation 0 network-id 1
a=candidate:3698760548 1 udp 2122129151 172.17.0.1 60263 typ host generation 0 network-id 2
a=candidate:1535142394 1 udp 2122063615 192.168.1.64 56602 typ host generation 0 network-id 3
a=candidate:3446450365 1 udp 2121998079 100.104.198.120 34093 typ host generation 0 network-id 4
a=candidate:4270152963 1 udp 2122265343 fd7a:115c:a1e0:ab12:4843:cd96:6268:c678 52469 typ host generation 0 network-id 5
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:actpass
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendrecv
a=msid:ee850ccc-ff46-4fa0-b097-3a8d839278fe 5ed55ae1-748c-4c80-9bda-e16b6a8858c3
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=ssrc:2526930264 cname:LU26xme7tGsQzW+c
a=ssrc:2526930264 msid:ee850ccc-ff46-4fa0-b097-3a8d839278fe 5ed55ae1-748c-4c80-9bda-e16b6a8858c3
m=video 9 UDP/TLS/RTP/SAVPF 96 97 102 103 104 105 106 107 108 109 127 125 39 40 45 46 98 99 100 101 112 113 114
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:jafp
a=ice-pwd:ZBrZbCp3lRSfwg7fdqx2cZ0R
a=ice-options:trickle
a=fingerprint:sha-256 C7:A2:B3:32:5C:47:66:BB:38:52:B1:8C:A8:74:D2:07:04:4B:3B:71:B5:25:2B:C4:A8:78:08:56:29:B8:3F:8A
a=setup:actpass
a=mid:2
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=extmap:13 urn:ietf:params:rtp-hdrext:toffset
a=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=msid:- 914c9c62-fd70-40a8-9ded-db002c8324c9
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:103 rtx/90000
a=fmtp:103 apt=102
a=rtpmap:104 H264/90000
a=rtcp-fb:104 goog-remb
a=rtcp-fb:104 transport-cc
a=rtcp-fb:104 ccm fir
a=rtcp-fb:104 nack
a=rtcp-fb:104 nack pli
a=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:105 rtx/90000
a=fmtp:105 apt=104
a=rtpmap:106 H264/90000
a=rtcp-fb:106 goog-remb
a=rtcp-fb:106 transport-cc
a=rtcp-fb:106 ccm fir
a=rtcp-fb:106 nack
a=rtcp-fb:106 nack pli
a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=106
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:125 rtx/90000
a=fmtp:125 apt=127
a=rtpmap:39 H264/90000
a=rtcp-fb:39 goog-remb
a=rtcp-fb:39 transport-cc
a=rtcp-fb:39 ccm fir
a=rtcp-fb:39 nack
a=rtcp-fb:39 nack pli
a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f
a=rtpmap:40 rtx/90000
a=fmtp:40 apt=39
a=rtpmap:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:112 red/90000
a=rtpmap:113 rtx/90000
a=fmtp:113 apt=112
a=rtpmap:114 ulpfec/90000
a=ssrc:1872051997 cname:LU26xme7tGsQzW+c
a=ssrc:1872051997 msid:- 914c9c62-fd70-40a8-9ded-db002c8324c9
Answer (pion)
v=0
o=- 3154593525473217347 1721313515 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 CB:44:8D:F0:37:41:1E:B5:EA:37:D3:63:63:43:F1:A4:95:2C:90:93:7B:56:07:C6:BC:8A:36:C7:CF:76:62:F0
a=extmap-allow-mixed
a=group:BUNDLE 0 1 2
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:active
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=candidate:375738803 1 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:375738803 2 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:3478480417 1 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:3478480417 2 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:2954730683 1 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:2954730683 2 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:210926995 1 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:210926995 2 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:3383423034 1 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=candidate:3383423034 2 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=candidate:2878742611 1 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:2878742611 2 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:1923487681 1 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:1923487681 2 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:233762139 1 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:233762139 2 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:2975927411 1 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:2975927411 2 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:1952023002 1 udp 2130706431 192.168.1.64 30443 typ host
a=candidate:1952023002 2 udp 2130706431 192.168.1.64 30443 typ host
a=end-of-candidates
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=setup:active
a=mid:1
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=ssrc:1694965936 cname:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=ssrc:1694965936 mslabel:ecsos9wppbfzug1bo59nbnceio
a=ssrc:1694965936 label:voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=msid:ecsos9wppbfzug1bo59nbnceio voice_bmm4cyphgb847mgjcpeg13rech_inzpfo1a
a=sendrecv
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:active
a=mid:2
a=ice-ufrag:UaMrFyhUIVKnSSPE
a=ice-pwd:qDzYGaQJrJXdHvujxVeEDzdzybzxtKzv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=ssrc:2095059163 cname:p7ytoh9j5i8hxf3h7zrmg7491o
a=ssrc:2095059163 msid:p7ytoh9j5i8hxf3h7zrmg7491o screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=ssrc:2095059163 mslabel:p7ytoh9j5i8hxf3h7zrmg7491o
a=ssrc:2095059163 label:screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=msid:p7ytoh9j5i8hxf3h7zrmg7491o screen_bmm4cyphgb847mgjcpeg13rech_8wyruk9a
a=sendrecv
Offer (pion)
v=0
o=- 5843810858778859013 1721313500 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 BC:15:6F:07:8F:E2:02:7E:52:77:0C:BF:1B:DA:98:2A:6C:F8:FF:0B:5A:2F:5A:15:3F:98:F0:9E:CA:D8:E3:33
a=extmap-allow-mixed
a=group:BUNDLE 0 1 2
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:YWmeUNDXBDYNdqrf
a=ice-pwd:UuQjvADEbGilgVJdVVofbhcSquBhEwwz
a=candidate:2878742611 1 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:2878742611 2 udp 2130706431 127.0.0.1 30443 typ host
a=candidate:1923487681 1 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:1923487681 2 udp 2130706431 192.168.254.1 30443 typ host
a=candidate:233762139 1 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:233762139 2 udp 2130706431 172.17.0.1 30443 typ host
a=candidate:2975927411 1 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:2975927411 2 udp 2130706431 100.104.198.120 30443 typ host
a=candidate:1952023002 1 udp 2130706431 192.168.1.64 30443 typ host
a=candidate:1952023002 2 udp 2130706431 192.168.1.64 30443 typ host
a=candidate:375738803 1 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:375738803 2 tcp 1671430143 127.0.0.1 30443 typ host tcptype passive
a=candidate:3478480417 1 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:3478480417 2 tcp 1671430143 192.168.254.1 30443 typ host tcptype passive
a=candidate:2954730683 1 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:2954730683 2 tcp 1671430143 172.17.0.1 30443 typ host tcptype passive
a=candidate:210926995 1 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:210926995 2 tcp 1671430143 100.104.198.120 30443 typ host tcptype passive
a=candidate:3383423034 1 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=candidate:3383423034 2 tcp 1671430143 192.168.1.64 30443 typ host tcptype passive
a=end-of-candidates
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:1
a=ice-ufrag:YWmeUNDXBDYNdqrf
a=ice-pwd:UuQjvADEbGilgVJdVVofbhcSquBhEwwz
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:2
a=ice-ufrag:YWmeUNDXBDYNdqrf
a=ice-pwd:UuQjvADEbGilgVJdVVofbhcSquBhEwwz
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=ssrc:928869044 cname:r5qazk113pyy9kjjuruf8p4zae
a=ssrc:928869044 msid:r5qazk113pyy9kjjuruf8p4zae voice_noptzz5jwinkt8418hnfppxs1w_tqtpgbi5
a=ssrc:928869044 mslabel:r5qazk113pyy9kjjuruf8p4zae
a=ssrc:928869044 label:voice_noptzz5jwinkt8418hnfppxs1w_tqtpgbi5
a=msid:r5qazk113pyy9kjjuruf8p4zae voice_noptzz5jwinkt8418hnfppxs1w_tqtpgbi5
a=sendrecv
Answer (client)
v=0
o=- 8065232482067447291 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS 553e4c6c-4e72-47fb-8f61-35bd2243db84 5c1ece8f-e211-4d5b-ab9d-f900e76e3e1b
m=application 37344 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.254.1
a=candidate:1278021067 1 udp 2122194687 192.168.254.1 37344 typ host generation 0 network-id 1
a=candidate:1036900507 1 udp 2122129151 172.17.0.1 60831 typ host generation 0 network-id 2
a=candidate:3124439557 1 udp 2122063615 192.168.1.64 40142 typ host generation 0 network-id 3
a=candidate:752347970 1 udp 2121998079 100.104.198.120 40860 typ host generation 0 network-id 4
a=candidate:524164860 1 udp 2122265343 fd7a:115c:a1e0:ab12:4843:cd96:6268:c678 36869 typ host generation 0 network-id 5
a=ice-ufrag:txEO
a=ice-pwd:s1W98gZAtRlIEF9nM/x8vFXe
a=ice-options:trickle
a=fingerprint:sha-256 AA:79:C0:4F:DE:B7:B2:48:F2:AF:1F:06:7D:98:FC:E3:76:C1:C7:18:0A:0C:45:89:D3:35:4A:8A:D2:AC:A1:7C
a=setup:passive
a=mid:0
a=sctp-port:5000
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:txEO
a=ice-pwd:s1W98gZAtRlIEF9nM/x8vFXe
a=ice-options:trickle
a=fingerprint:sha-256 AA:79:C0:4F:DE:B7:B2:48:F2:AF:1F:06:7D:98:FC:E3:76:C1:C7:18:0A:0C:45:89:D3:35:4A:8A:D2:AC:A1:7C
a=setup:passive
a=mid:1
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=msid:5c1ece8f-e211-4d5b-ab9d-f900e76e3e1b b141720e-7091-4e78-93c0-af2507972131
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=ssrc-group:FID 135833559 3831208114
a=ssrc:135833559 cname:rJPpzuiiRUpzDZu3
a=ssrc:3831208114 cname:rJPpzuiiRUpzDZu3
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:txEO
a=ice-pwd:s1W98gZAtRlIEF9nM/x8vFXe
a=ice-options:trickle
a=fingerprint:sha-256 AA:79:C0:4F:DE:B7:B2:48:F2:AF:1F:06:7D:98:FC:E3:76:C1:C7:18:0A:0C:45:89:D3:35:4A:8A:D2:AC:A1:7C
a=setup:passive
a=mid:2
a=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=msid:553e4c6c-4e72-47fb-8f61-35bd2243db84 32aeb59e-3758-417e-9d8e-2e0c64d910bf
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=ssrc:2170722514 cname:rJPpzuiiRUpzDZu3
|
You said there were 2 clients A and B, does the message only contain 1 client's sdp? |
Yeah, that's just clientB's exchange with pion. That's the side showing the issue. After the last Offer/Answer pair we get the |
The last offer/answer looks weird, the audio/video transceiver exchanged their postion and mid. Pion should not reuse audio transceiver to send video track, what did you do before send last offer to client? |
Ah, that last exchange is actually pion offering the incoming voice track from clientB to clientA. After negotiating the two existing tracks from the other client (voice + screen), client B offers its voice track. That's what triggers the second to last offer/answer exchange. |
so the last offer/answer is pion negotiating with client A? |
correct |
In my opinion the last one should be another peerconnection communicate with client A, how does it impact the peerconnect communicate with client B |
Well yes, there are two peer connections at play here. |
Thank you for the quick fix @edaniels, appreciate it 💯 |
There seems to be a regression starting from commit c72ccc1
Calls to
packetio.(*Buffer).Read
are at times stuck indefinitely, even past closing the connection.The main difference I notice is that we are receiving the track (onTrack event) and a few moments after we get an unhandled RTP error causing everything to halt:
On previous (working) versions, we'd get the sporadic unhandled RTP error, but it would be followed by the OnTrack event firing.
/cc @paulwe @cnderrauber @Sean-Der
The text was updated successfully, but these errors were encountered: