owt-sdk-quic icon indicating copy to clipboard operation
owt-sdk-quic copied to clipboard

Crash while writing after session is terminated.

Open jianjunz opened this issue 5 years ago • 0 comments

QuicTransportStreamImpl::Write posts a task to io_runner_. Session might be stopped before the task is finished.

Call stack:

 	owt_quic_transport.dll!quic::QuicTransportStream::CanWrite() Line 101	C++
>	owt_quic_transport.dll!owt::quic::QuicTransportStreamImpl::Write(uint8_t *, size_t)::(anonymous class)::operator()() Line 114	C++
 	owt_quic_transport.dll!base::internal::FunctorTraits<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',void>::Invoke<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',owt::quic::QuicTransportStreamImpl *,unsigned char *,unsigned long long &,bool &,base::WaitableEvent *>() Line 379	C++
 	owt_quic_transport.dll!base::internal::InvokeHelper<0,void>::MakeItSo<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',owt::quic::QuicTransportStreamImpl *,unsigned char *,unsigned long long &,bool &,base::WaitableEvent *>() Line 637	C++
 	owt_quic_transport.dll!base::internal::Invoker<base::internal::BindState<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,void ()>::RunImpl<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',std::__1::tuple<base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,0,1,2,3,4>() Line 710	C++
 	owt_quic_transport.dll!base::internal::Invoker<base::internal::BindState<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,void ()>::RunOnce() Line 679	C++
 	owt_quic_transport.dll!base::OnceCallback<void ()>::Run() Line 101	C++
 	owt_quic_transport.dll!base::TaskAnnotator::RunTask() Line 165	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl() Line 333	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 254	C++
 	owt_quic_transport.dll!base::MessagePumpForIO::DoRunLoop() Line 723	C++
 	owt_quic_transport.dll!base::MessagePumpWin::Run() Line 82	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run() Line 450	C++
 	owt_quic_transport.dll!base::RunLoop::Run() Line 124	C++
 	owt_quic_transport.dll!base::Thread::Run() Line 311	C++
 	owt_quic_transport.dll!base::Thread::ThreadMain() Line 385	C++
 	owt_quic_transport.dll!base::`anonymous namespace'::ThreadFunc() Line 113	C++
 	[External Code]	

jianjunz avatar Jan 28 '21 08:01 jianjunz