Closed xnandersson closed 8 years ago
Somehow, session->srcpad
in libpurple media backend doesn't get initialized or has meaningless values. Is this reproducible or was it a one-time hiccup?
Pidgin debug log would be useful here, preferably with GStreamer logs included.
GST_DEBUG=3 pidgin --debug
Perhaps even GST_DEBUG=4
, but that might be too verbose for a start.
It is reproducible. I'll do the logging once my colleague gets back online :)
Log produced with GST_DEBUG=3 pidgin --debug | tee ~/pidgin.log send privately by mail.
Obfuscated call invite from Pidgin
------=_NextPart_000_001E_01CB4397.0B5EB570
Content-Type: application/sdp
Content-Transfer-Encoding: 7bit
Content-Disposition: session; handling=optional; ms-proxy-2007fallback
o=- 0 0 IN IP4 4.5.6.244
s=session
c=IN IP4 4.5.6.244
m=audio 0 RTP/AVP
------=_NextPart_000_001E_01CB4397.0B5EB570
Content-Type: application/sdp
Content-Transfer-Encoding: 7bit
Content-Disposition: session; handling=optional
v=0
o=- 0 0 IN IP4 192.168.1.157
s=session
c=IN IP4 192.168.1.157
b=CT:99980
t=0 0
m=audio 48018 RTP/AVP 0 3 8 9 10 14 96 97 98 99 100 101 102 103 104
a=candidate:10 1 UDP 183501311 1.2.3.148 61209 typ relay raddr 192.168.1.157 rport 48018
a=candidate:10 2 UDP 183501310 1.2.3.148 49191 typ relay raddr 192.168.1.157 rport 48030
a=candidate:11 1 TCP-ACT 90833407 1.2.3.148 57002 typ relay raddr 192.168.1.157 rport 48009
a=candidate:11 2 TCP-ACT 90833407 1.2.3.148 57002 typ relay raddr 192.168.1.157 rport 48009
a=candidate:12 1 TCP-PASS 90440191 1.2.3.148 57002 typ relay raddr 192.168.1.157 rport 48009
a=candidate:12 2 TCP-PASS 90440191 1.2.3.148 57002 typ relay raddr 192.168.1.157 rport 48009
a=candidate:4 1 UDP 2028995071 192.168.1.157 48018 typ host
a=candidate:4 2 UDP 2028995070 192.168.1.157 48030 typ host
a=candidate:5 1 TCP-ACT 1013580287 192.168.1.157 48009 typ host
a=candidate:5 2 TCP-ACT 1013580287 192.168.1.157 48009 typ host
a=candidate:6 1 TCP-PASS 1013187071 192.168.1.157 48009 typ host
a=candidate:6 2 TCP-PASS 1013187071 192.168.1.157 48009 typ host
a=candidate:7 1 UDP 1693450751 1.2.3.129 48019 typ srflx raddr 192.168.1.157 rport 48018
a=candidate:7 2 UDP 1693450750 1.2.3.129 48030 typ srflx raddr 192.168.1.157 rport 48030
a=candidate:8 1 TCP-ACT 845808127 1.2.3.129 48009 typ srflx raddr 192.168.1.157 rport 48009
a=candidate:8 2 TCP-ACT 845808127 1.2.3.129 48009 typ srflx raddr 192.168.1.157 rport 48009
a=candidate:9 1 TCP-PASS 845414911 1.2.3.129 48009 typ srflx raddr 192.168.1.157 rport 48009
a=candidate:9 2 TCP-PASS 845414911 1.2.3.129 48009 typ srflx raddr 192.168.1.157 rport 48009
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:fGfhfVL7zXqw+cQStxCXPnk00gzVHCIpxn/TCGNm|2^31
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:10 L16/44100
a=rtpmap:14 MPA-ROBUST/90000
a=rtpmap:96 OPUS/48000
a=rtpmap:97 SIREN/16000
a=fmtp:97 bitrate=16000
a=rtpmap:98 G726-16/8000
a=rtpmap:99 AMR/8000
a=fmtp:99 octet-align=1 crc=0 robust-sorting=0 interleaving=0
a=rtpmap:100 telephone-event/48000
a=fmtp:100 events=0-15
a=rtpmap:101 telephone-event/16000
a=fmtp:101 events=0-15
a=rtpmap:102 telephone-event/8000
a=fmtp:102 events=0-15
a=rtpmap:103 telephone-event/90000
a=fmtp:103 events=0-15
a=rtpmap:104 telephone-event/44100
a=fmtp:104 events=0-15
a=rtcp:48030
a=ice-ufrag:h9PD
a=ice-pwd:vJ/uZMRTNb2OfNNqT3i6li
m=video 46411 RTP/AVP 26 31 32 34 96 98 99 100 101 102 103
a=candidate:10 1 UDP 183501311 1.2.3.148 63559 typ relay raddr 192.168.1.157 rport 46411
a=candidate:10 2 UDP 183501310 1.2.3.148 42583 typ relay raddr 192.168.1.157 rport 54536
a=candidate:11 1 TCP-ACT 90833407 1.2.3.148 45255 typ relay raddr 192.168.1.157 rport 52996
a=candidate:11 2 TCP-ACT 90833407 1.2.3.148 45255 typ relay raddr 192.168.1.157 rport 52996
a=candidate:12 1 TCP-PASS 90440191 1.2.3.148 45255 typ relay raddr 192.168.1.157 rport 52996
a=candidate:12 2 TCP-PASS 90440191 1.2.3.148 45255 typ relay raddr 192.168.1.157 rport 52996
a=candidate:4 1 UDP 2028995071 192.168.1.157 46411 typ host
a=candidate:4 2 UDP 2028995070 192.168.1.157 54536 typ host
a=candidate:5 1 TCP-ACT 1013580287 192.168.1.157 52996 typ host
a=candidate:5 2 TCP-ACT 1013580287 192.168.1.157 52996 typ host
a=candidate:6 1 TCP-PASS 1013187071 192.168.1.157 52996 typ host
a=candidate:6 2 TCP-PASS 1013187071 192.168.1.157 52996 typ host
a=candidate:7 1 UDP 1693450751 1.2.3.129 46411 typ srflx raddr 192.168.1.157 rport 46411
a=candidate:7 2 UDP 1693450750 1.2.3.129 54536 typ srflx raddr 192.168.1.157 rport 54536
a=candidate:8 1 TCP-ACT 845808127 1.2.3.129 52996 typ srflx raddr 192.168.1.157 rport 52996
a=candidate:8 2 TCP-ACT 845808127 1.2.3.129 52996 typ srflx raddr 192.168.1.157 rport 52996
a=candidate:9 1 TCP-PASS 845414911 1.2.3.129 52996 typ srflx raddr 192.168.1.157 rport 52996
a=candidate:9 2 TCP-PASS 845414911 1.2.3.129 52996 typ srflx raddr 192.168.1.157 rport 52996
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:Y9/ORVwgQCqa8CNeAtpumRjnzuv0owcWzM2Vn9b4|2^31
a=rtpmap:26 JPEG/90000
a=rtpmap:31 H261/90000
a=rtpmap:32 MPV/90000
a=rtpmap:34 H263/90000
a=rtpmap:96 RAW/90000
a=rtpmap:98 H265/90000
a=rtpmap:99 X-H264UC/90000
a=fmtp:99 packetization-mode=1;mst-mode=NI-TC
a=rtpmap:100 H263-1998/90000
a=rtpmap:101 DV/90000
a=rtpmap:102 VP9/90000
a=rtpmap:103 VP8/90000
a=rtcp:54536
a=rtcp-fb:* x-message app send:src recv:src
a=x-ssrc-range:1-100
a=rtcp-rsize
a=label:main-video
a=x-source:main-video
a=ice-ufrag:Ey3g
a=ice-pwd:F335mSM2vGFx929u0/g/gC
There's already some problem when the remote client replies on the invitation:
SIP/2.0 488 Not Acceptable Here
ms-user-logon-data: RemoteUser
Authentication-Info: NTLM qop="auth", opaque="CEEF6F87", srand="ADCB9C91", snum="37", rspauth="01000000e7327b796275dd0e64000000", targetname="sessmwfe2104.company.se", realm="SIP Communications Service", version=4
Via: SIP/2.0/tls 4.5.6.244:44562;received=1.2.3.129;ms-received-port=44562;ms-received-cid=759FB800
Content-Length: 0
From: "Niklas Andersson"<sip:niklas.andersson@company.com>;tag=111460482;epid=00a9dd127038
CSeq: 1 INVITE
Call-ID: 8F30gF726a1FA5iFBB0m690At6C15bEB75x2F3Bx
To: <sip:remote@company.com>;epid=a7d2d533ee7c;tag=3098817160
Contact: <sip:remote@company.com;opaque=user:epid:hNkC2fC_kliGDGYXngJ4WwAA;gruu>
User-Agent: Purple/3.0.0devel Sipe/1.21.0 (linux-x86_64; RTC/5.0)
ms-diagnostics: 1037;reason="Previous hop client did not report diagnostic information";Domain="company.com";PeerServer="1.2.3.129";source="SESSMWAE202.company.com"
Looks like this is a Pidgin-Pidgin call. That could be the starting point:
User-Agent: Purple/3.0.0devel Sipe/1.21.0 (linux-x86_64; RTC/5.0)
(Pidgin:3427): GStreamer-CRITICAL **: gst_element_release_request_pad: assertion 'GST_PAD_PAD_TEMPLATE (pad) == NULL || GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) == GST_PAD_REQUEST' failed
[Thread 0x7fff03fff700 (LWP 4822) exited]
[Thread 0x7fff01ffb700 (LWP 4810) exited]
[Thread 0x7fff4cdb1700 (LWP 4815) exited]
[Thread 0x7fff3d5f6700 (LWP 4811) exited]
Thread 1 "pidgin.orig" received signal SIGSEGV, Segmentation fault.
sipe_core_media_get_call (sipe_public=sipe_public@entry=0x0)
at sipe-media.c:1362
1362 sipe-media.c: No such file or directory.
(gdb)
(gdb) bt full
#0 sipe_core_media_get_call (sipe_public=sipe_public@entry=0x0)
at sipe-media.c:1362
result = 0x0
calls = <optimized out>
#1 0x00007fffd1757256 in sipe_media_initiate_call (with_video=1,
ice_version=SIPE_ICE_DRAFT_6,
with=0x55555699c020 "sip:remote@company.com",
sipe_private=0x0) at sipe-media.c:1242
No locals.
#2 maybe_retry_call_with_ice_version (call_private=0x55555675bdb0,
ice_version=SIPE_ICE_DRAFT_6, trans=<optimized out>) at sipe-media.c:1733
i = <optimized out>
with = 0x55555699c020 "sip:remote@company.com"
with_video = <optimized out>
trans = <optimized out>
ice_version = SIPE_ICE_DRAFT_6
call_private = 0x55555675bdb0
#3 0x00007fffd1757545 in process_invite_call_response (
sipe_private=0x555556616430, msg=0x55555675a0a0, trans=0x555556d90e40)
at sipe-media.c:1824
ms_diag = <optimized out>
retry_ice_version = <optimized out>
title = <optimized out>
---Type <return> to continue, or q <return> to quit---a
desc = 0x5555566f1d20
append_responsestr = 0
with = <optimized out>
call_private = 0x55555675bdb0
dialog = <optimized out>
smsg = <optimized out>
#4 0x00007fffd17295c2 in process_input_message (sipe_private=0x555556616430,
msg=0x55555675a0a0) at sip-transport.c:1689
trans = 0x555556d90e40
transport = 0x555556546eb0
notfound = 0
method = <optimized out>
#5 0x00007fffd1729bf4 in sip_transport_input (conn=<optimized out>)
at sip-transport.c:1784
msgbd = {msg = 0x55555675a0a0, protocol = 0x555556a2db10 "NTLM",
rand = 0x555556c49c70 "604100B7", num = 0x555556ebaf60 "94",
realm = 0x5555568943e0 "SIP Communications Service",
target_name = 0x555555cda120 "sessmwfe2104.company.com",
call_id = 0x555556885790 "7D9Bg9131aBE6Ei7BCEm1457tC419bA156x0E7Fx",
cseq = 0x555556728200 "1",
from_url = 0x555556e9e3d0 "sip:niklas.andersson@company.com",
from_tag = 0x5555565e1db0 "5657835506",
to_url = 0x555556d8a150 "sip:remote@company.com",
to_tag = 0x5555566ddaf0 "490109988",
p_assertet_identity_sip_uri = 0x7fffd17647a8 "",
p_assertet_identity_tel_uri = 0x7fffd17647a8 "", expires = 0x0}
signature_input_str = 0x555556d0c3f0 "<NTLM><604100B7><94><SIP Communications Service><sessmwfe2104.ericsson.se><7D9Bg9131aBE6Ei7BCEm1457tC419bA156x0E7Fx><1><INVITE><sip:niklas.andersson@company.com><5657835506><sip:remote@"...
rspauth = 0x555556ea1e30 "01000000db400baa24d43ac964000000"
msg = 0x55555675a0a0
remainder = <optimized out>
sipe_private = 0x555556616430
transport = 0x555556546eb0
cur = <optimized out>
#6 0x00007ffff1c83250 in recv_cb (source=<optimized out>,
data=<optimized out>) at sslconn.c:183
gsc = <optimized out>
#7 0x00007fff78499284 in ?? ()
from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
No symbol table info available.
#8 0x00007ffff7808fda in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#9 0x00007ffff7809380 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#10 0x00007ffff78096a2 in g_main_loop_run ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007ffff36f26f5 in gtk_main ()
from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#12 0x00007ffff7b93e94 in pidgin_start (argc=1, argv=0x7fffffffde68)
at libpidgin.c:850
opt_force_online = 0
opt_help = <optimized out>
opt_login = 0
opt_nologin = 0
opt_version = 0
opt_si = 1
opt_config_dir_arg = 0x0
opt_login_arg = <optimized out>
opt_session_arg = 0x0
search_path = <optimized out>
provider = <optimized out>
screen = <optimized out>
---Type <return> to continue, or q <return> to quit---
accounts = <optimized out>
sig_indx = 1
sigset = {__val = {82950, 0 <repeats 15 times>}}
errmsg = "d\005\213\021\226\002\v \nH\200\020D\n.\000\b\000\000\004\006@\000\004\265/\b\v\250\020!Q b\204P\002\002\b\005R@\004A\240\344\003\300G\033&\260\306@r\225\000.\vL\202\t\030\213\221\346\\\004\002\017\324l]\000\000\000_\000\000\000`\000\000\000\000\000\000\000a\000\000\000b\000\000\000d\000\000\000e\000\000\000f\000\000\000g\000\000\000j\000\000\000\000\000\000\000l\000\000\000n\000\000\000p\000\000\000q\000\000\000u\000\000\000w\000\000\000y", '\000' <repeats 11 times>, "z\000\000\000{\000\000\000\000\000\000\000}\000\000\000~\000\000\000\177\000\000\000\000\000\000\000\202\000\000\000\203\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000"...
signal_channel = <optimized out>
signal_status = <optimized out>
signal_channel_watcher = 1
error = 0x555555876190
segfault_message_tmp = <optimized out>
opt = <optimized out>
gui_check = <optimized out>
debug_enabled = <optimized out>
debug_colored = <optimized out>
active_accounts = <optimized out>
st = {st_dev = 64513, st_ino = 10497423, st_nlink = 2,
st_mode = 16832, st_uid = 1000, st_gid = 1000, __pad0 = 0,
st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8,
st_atim = {tv_sec = 1461925367, tv_nsec = 390211044}, st_mtim = {
tv_sec = 1431420985, tv_nsec = 949274814}, st_ctim = {
tv_sec = 1431420985, tv_nsec = 949274814}, __glibc_reserved = {0,
0, 0}}
long_options = {{name = 0x7ffff7ba9788 "config", has_arg = 1,
flag = 0x0, val = 99}, {name = 0x7ffff7b96d08 "debug",
has_arg = 2, flag = 0x0, val = 100}, {
name = 0x7ffff7badeaa "force-online", has_arg = 0, flag = 0x0,
val = 102}, {name = 0x7ffff7b98916 "help", has_arg = 0,
flag = 0x0, val = 104}, {name = 0x7ffff7badd8f "login",
has_arg = 2, flag = 0x0, val = 108}, {
name = 0x7ffff7badeb7 "multiple", has_arg = 0, flag = 0x0,
val = 109}, {name = 0x7ffff7badec0 "nologin", has_arg = 0,
flag = 0x0, val = 110}, {name = 0x7ffff7ba977e "session",
has_arg = 1, flag = 0x0, val = 115}, {
name = 0x7ffff7b9b900 "version", has_arg = 0, flag = 0x0,
val = 118}, {name = 0x7ffff7ba9791 "display", has_arg = 1,
flag = 0x0, val = 68}, {name = 0x7ffff7ba5423 "sync", has_arg = 0,
flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0,
val = 0}}
#13 0x00007ffff71f9830 in __libc_start_main (main=0x5555555548c0 <main>,
argc=1, argv=0x7fffffffde68, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffde58)
at ../csu/libc-start.c:291
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -6054087026801569774,
93824992233760, 140737488346720, 0, 0, -94898049734602734,
-94914819777294318}, mask_was_saved = 0}}, priv = {pad = {0x0,
0x0, 0x7fffffffde78, 0x7ffff7ffe168}, data = {prev = 0x0,
cleanup = 0x0, canceltype = -8584}}}
not_first_call = <optimized out>
#14 0x0000555555554949 in _start ()
No symbol table info available.
(gdb)
There seems to be nothing wrong with your invite SDP message itself. 488 Not Acceptable Here
comes from error_cb in sipe-media.c, but your log doesn't show the actual error that happened on the side of the person being called.
Please collect the log from your colleague's Pidgin.
I couldn't reproduce the crash, but turns out Pidgin can send 488 Not Acceptable Here
when the participant has some problem with webcam or has no webcam at all. I did the following changes that should prevent the problem or at least improve how Pidgin behaves:
session->srcpad
can in theory be NULL.Please test this version:
pidgin - 1:3.0.0~collab-0.20635+201605030724~ubuntu16.04.1
pidgin - 1:3.0.0~collab-0.20635+201605030725~ubuntu15.10.1
pidgin - 1:3.0.0~collab-0.20635+201605030725~ubuntu15.04.1
Two weeks since the fix release have passed without any further reports, so I consider this issue fixed and am closing it.
Versions: