Chrome Remote Desktop host crashes on WebRTC disconnect |
|||
Issue descriptionPossible dupe of bug 655215 . Repro steps: 1. Connect to a debug build host using WebRTC. 2. Disconnect. Result: The host will crash with the following final few log lines: [1027/100709:WARNING:rtp_rtcp_impl.cc(338)] Failed to send RTCP BYE [1027/100709:FATAL:thread_restrictions.cc(38)] Check failed: false. Function marked as IO-only was called from a thread that disallows IO! If this thread really should be allowed to make IO calls, adjust the call to base::ThreadRestrictions::SetIOAllowed() in this thread's startup. #0 0x7f1fc93b457e base::debug::StackTrace::StackTrace() #1 0x7f1fc9423aaf logging::LogMessage::~LogMessage() #2 0x7f1fc95a4017 base::ThreadRestrictions::AssertIOAllowed() #3 0x7f1fc95800da base::PlatformThread::Join() #4 0x7f1fc95978ab base::Thread::Stop() #5 0x000000ec0e5f rtc::TaskQueue::~TaskQueue() #6 0x000000fd955b webrtc::ViEEncoder::~ViEEncoder() #7 0x000000fd96e9 webrtc::ViEEncoder::~ViEEncoder() #8 0x00000045d1bf std::default_delete<>::operator()() #9 0x000000fd291c std::unique_ptr<>::reset() #10 0x000000fd2bc9 std::unique_ptr<>::~unique_ptr() #11 0x000000fcc0eb webrtc::internal::VideoSendStream::~VideoSendStream() #12 0x000000fcc179 webrtc::internal::VideoSendStream::~VideoSendStream() #13 0x000000d606ce webrtc::internal::Call::DestroyVideoSendStream() #14 0x000001091470 cricket::WebRtcVideoChannel2::WebRtcVideoSendStream::~WebRtcVideoSendStream() #15 0x000001091ac9 cricket::WebRtcVideoChannel2::WebRtcVideoSendStream::~WebRtcVideoSendStream() #16 0x0000010887b4 cricket::WebRtcVideoChannel2::~WebRtcVideoChannel2() #17 0x000001088a49 cricket::WebRtcVideoChannel2::~WebRtcVideoChannel2() #18 0x0000010f0d32 cricket::BaseChannel::~BaseChannel() #19 0x0000010fc1b7 cricket::VideoChannel::~VideoChannel() #20 0x0000010fc2c9 cricket::VideoChannel::~VideoChannel() #21 0x0000011363bd cricket::ChannelManager::DestroyVideoChannel_w() #22 0x00000113d5d1 rtc::MethodFunctor1<>::operator()() #23 0x00000113d550 rtc::FunctorMessageHandler<>::OnMessage() #24 0x000000bcb6b3 jingle_glue::JingleThreadWrapper::Dispatch() #25 0x000000bcb9b7 jingle_glue::JingleThreadWrapper::Send() #26 0x0000011e2dc9 rtc::Thread::InvokeInternal() #27 0x000001139520 rtc::Thread::Invoke<>() #28 0x000001137181 cricket::ChannelManager::DestroyVideoChannel() #29 0x000000d1bae8 webrtc::WebRtcSession::RemoveUnusedChannels() #30 0x000000d1b97d webrtc::WebRtcSession::Close() #31 0x000000cc50aa webrtc::PeerConnection::Close() #32 0x000000c58fee webrtc::ReturnType<>::Invoke<>() #33 0x000000c58f5f webrtc::MethodCall0<>::OnMessage() #34 0x000000c590bf webrtc::internal::SynchronousMethodCall::Invoke() #35 0x000000c58ecc webrtc::MethodCall0<>::Marshal() #36 0x000000c606f0 webrtc::PeerConnectionProxyWithInternal<>::Close() #37 0x000000a408c5 remoting::protocol::WebrtcTransport::PeerConnectionWrapper::~PeerConnectionWrapper() #38 0x000000a40939 remoting::protocol::WebrtcTransport::PeerConnectionWrapper::~PeerConnectionWrapper() #39 0x000000a467db base::DeleteHelper<>::DoDelete() #40 0x7f1fc94f561a _ZN4base8internal13FunctorTraitsIPFvPKvEvE6InvokeIJRKS3_EEEvS5_DpOT_ #41 0x7f1fc94f5598 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvPKvEJRKS5_EEEvOT_DpOT0_ #42 0x7f1fc94f5552 _ZN4base8internal7InvokerINS0_9BindStateIPFvPKvEJS4_EEEFvvEE7RunImplIRKS6_RKSt5tupleIJS4_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #43 0x7f1fc94f549c _ZN4base8internal7InvokerINS0_9BindStateIPFvPKvEJS4_EEEFvvEE3RunEPNS0_13BindStateBaseE #44 0x7f1fc93ba461 _ZNO4base8internal8RunMixinINS_8CallbackIFvvELNS0_8CopyModeE0ELNS0_10RepeatModeE0EEEE3RunEv #45 0x7f1fc93b9e69 base::debug::TaskAnnotator::RunTask() #46 0x7f1fc944c96a base::MessageLoop::RunTask() #47 0x7f1fc944cbf4 base::MessageLoop::DeferOrRunPendingTask() #48 0x7f1fc944cede base::MessageLoop::DoWork() #49 0x7f1fc94677de base::MessagePumpLibevent::Run() #50 0x7f1fc944c4ea base::MessageLoop::RunHandler() #51 0x7f1fc94f3704 base::RunLoop::Run() #52 0x0000004557e6 remoting::AutoThread::ThreadMain() #53 0x7f1fc958075a base::(anonymous namespace)::ThreadFunc() #54 0x7f1fc97f1184 start_thread #55 0x7f1fc360137d clone
,
Dec 9 2016
,
Dec 10 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2c41f984a001aa9f1c686ef2d888fdfa1fcaea23 commit 2c41f984a001aa9f1c686ef2d888fdfa1fcaea23 Author: sergeyu <sergeyu@chromium.org> Date: Sat Dec 10 01:45:16 2016 Add ScopedAllowIO in WebrtcTransport when shutting down WebRTC session. PeerConnection creates new threads internally and shuts them down when connection is closed. This is a blocking operation, so Debug builds were DCHECK'ing every time connection is terminated. Added ScopedAllowIO to work around this issue. BUG= 660081 Review-Url: https://codereview.chromium.org/2567533002 Cr-Commit-Position: refs/heads/master@{#437711} [modify] https://crrev.com/2c41f984a001aa9f1c686ef2d888fdfa1fcaea23/PRESUBMIT.py [modify] https://crrev.com/2c41f984a001aa9f1c686ef2d888fdfa1fcaea23/remoting/protocol/webrtc_transport.cc
,
Dec 12 2016
|
|||
►
Sign in to add a comment |
|||
Comment 1 by jamiewa...@chromium.org
, Oct 27 2016Status: Assigned (was: Untriaged)