New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 687282 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

WebRTC: Assertion in TurnPort::OnSocketConnect when using TLS certs

Project Member Reported by marshall@chromium.org, Jan 31 2017

Issue description

Chrome Version: Chromium master revision ad51088c (#444943)
OS: Windows 10 64-bit

What steps will reproduce the problem?
(1) Load a website like https://appear.in/ that uses TLS certificates and join a room.
(2) Join the same room from another Chrome browser instance.

What is the expected result?
Chromium-based application should not assert.

What happens instead?
Hit the RTC_DCHECK(server_address_.proto == PROTO_TCP); assertion in TurnPort::OnSocketConnect. The value of |server_address_.proto| is PROTO_TLS.

```
 	libcef.dll!issue_debug_notification(const wchar_t * const message) Line 125	C++
 	libcef.dll!__acrt_report_runtime_error(const wchar_t * message) Line 142	C++
 	libcef.dll!abort() Line 51	C++
 	libcef.dll!rtc::FatalMessage::~FatalMessage() Line 110	C++
>	libcef.dll!cricket::TurnPort::OnSocketConnect(rtc::AsyncPacketSocket * socket) Line 390	C++
 	libcef.dll!sigslot::_connection1<cricket::TurnPort,rtc::AsyncPacketSocket *,sigslot::single_threaded>::emit(rtc::AsyncPacketSocket * a1) Line 1807	C++
 	libcef.dll!sigslot::signal1<rtc::AsyncPacketSocket *,sigslot::single_threaded>::operator()(rtc::AsyncPacketSocket * a1) Line 2302	C++
 	libcef.dll!content::`anonymous namespace'::IpcPacketSocket::OnOpen(const net::IPEndPoint & local_address, const net::IPEndPoint & remote_address) Line 584	C++
 	libcef.dll!content::P2PSocketClientImpl::DeliverOnSocketCreated(const net::IPEndPoint & local_address, const net::IPEndPoint & remote_address) Line 170	C++
 	libcef.dll!base::internal::FunctorTraits<void (__thiscall content::P2PSocketClientImpl::*)(net::IPEndPoint const &,net::IPEndPoint const &),void>::Invoke<scoped_refptr<content::P2PSocketClientImpl> const &,net::IPEndPoint const &,net::IPEndPoint const &>(void(content::P2PSocketClientImpl::*)(const net::IPEndPoint &, const net::IPEndPoint &) method, const scoped_refptr<content::P2PSocketClientImpl> & receiver_ptr, const net::IPEndPoint & <args_0>, const net::IPEndPoint & <args_1>) Line 215	C++
 	libcef.dll!base::internal::InvokeHelper<0,void>::MakeItSo<void (__thiscall content::P2PSocketClientImpl::*const &)(net::IPEndPoint const &,net::IPEndPoint const &),scoped_refptr<content::P2PSocketClientImpl> const &,net::IPEndPoint const &,net::IPEndPoint const &>(void(content::P2PSocketClientImpl::*)(const net::IPEndPoint &, const net::IPEndPoint &) & functor, const scoped_refptr<content::P2PSocketClientImpl> & <args_0>, const net::IPEndPoint & <args_1>, const net::IPEndPoint & <args_2>) Line 285	C++
 	libcef.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::P2PSocketClientImpl::*)(net::IPEndPoint const &,net::IPEndPoint const &),scoped_refptr<content::P2PSocketClientImpl>,net::IPEndPoint,net::IPEndPoint>,void __cdecl(void)>::RunImpl<void (__thiscall content::P2PSocketClientImpl::*const &)(net::IPEndPoint const &,net::IPEndPoint const &),std::tuple<scoped_refptr<content::P2PSocketClientImpl>,net::IPEndPoint,net::IPEndPoint> const &,0,1,2>(void(content::P2PSocketClientImpl::*)(const net::IPEndPoint &, const net::IPEndPoint &) & functor, const std::tuple<scoped_refptr<content::P2PSocketClientImpl>,net::IPEndPoint,net::IPEndPoint> & bound, base::IndexSequence<0,1,2> __formal) Line 361	C++
 	libcef.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::P2PSocketClientImpl::*)(net::IPEndPoint const &,net::IPEndPoint const &),scoped_refptr<content::P2PSocketClientImpl>,net::IPEndPoint,net::IPEndPoint>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 339	C++
 	libcef.dll!base::internal::RunMixin<base::Callback<void __cdecl(void),0,0> >::Run() Line 68	C++
 	libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 54	C++
 	libcef.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 419	C++
 	libcef.dll!base::MessageLoop::DeferOrRunPendingTask(base::PendingTask pending_task) Line 430	C++
 	libcef.dll!base::MessageLoop::DoWork() Line 520	C++
 	libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 33	C++
 	libcef.dll!base::MessageLoop::RunHandler() Line 384	C++
 	libcef.dll!base::RunLoop::Run() Line 38	C++
 	libcef.dll!base::Thread::Run(base::RunLoop * run_loop) Line 246	C++
 	libcef.dll!base::Thread::ThreadMain() Line 331	C++
 	libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 86	C++

```

 
Cc: -henrika@webrtc.org hta@chromium.org
Owner: pthatcher@chromium.org
Status: Assigned (was: Untriaged)

Sign in to add a comment