facebookexperimental / facebookexperimental/moxygen

Relay SEGV on second publish

Open
#117 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
111
Forks
35
Avg merge
4m
Merged PRs (30d)
1

Description

```
V0325 18:27:06.331033 3265320 MoQCodec.cpp:445] parsing frame type=29
V0325 18:27:06.331205 3265320 MoQFramer.cpp:703] parseParams: returning success
V0325 18:27:06.331378 3265320 MoQSession.cpp:3911] onPublish reqID=0 sess=0x51b000404290
V0325 18:27:06.331680 3265320 MoQRelay.cpp:373] publish ftn=clock/seconds
V0325 18:27:06.331821 3265320 MoQRelay.cpp:411] New publisher for existing subscription
*** Aborted at 1774463226 (Unix time, try 'date -d @1774463226') ***
*** Signal 11 (SIGSEGV) (0x0) received by PID 3265319 (pthread TID 0x75e09f9ff640) (linux TID 3265320) (code: address not mapped to object), stack trace: ***
==3265319==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
@ 00000000030b1293 folly::symbolizer::(anonymous namespace)::innerSignalHandler(int, siginfo_t*, void*)
./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:551
@ 00000000030afeeb folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*)
./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:572
@ 000000000004455f (unknown)
/home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/unix/sysv/linux/libc_sigaction.c:8
-> /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
@ 0000000000c252af moxygen::MoQRelay::publish(moxygen::PublishRequest, std::shared_ptr)
./fbcode/ti/experimental/moxygen/relay/MoQRelay.cpp:413
@ 0000000000c2be5b non-virtual thunk to moxygen::MoQRelay::publish(moxygen::PublishRequest, std::shared_ptr)
./fbcode/ti/experimental/moxygen/relay/MoQRelay.cpp:0
@ 000000000131e783 moxygen::MoQSession::handlePublish(moxygen::PublishRequest, std::shared_ptr) [clone .resume]
./fbcode/ti/experimental/moxygen/MoQSession.cpp:3991
@ 0000000000cd92e3 std::__n4861::coroutine_handle::resume() const
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/coroutine:127
@ 0000000001966bed folly::resumeCoroutineWithNewAsyncStackRoot(std::__n4861::coroutine_handle, folly::AsyncStackFrame&)
./fbcode/folly/tracing/AsyncStack.cpp:199
@ 0000000000c60c02 void folly::resumeCoroutineWithNewAsyncStackRoot >(std::__n4861::coroutine_handle >)
fbcode/folly/tracing/AsyncStack-inl.h:88
@ 0000000000c60909 folly::coro::TaskWithExecutor::Awaiter::await_suspend(std::__n4861::coroutine_handle)::{lambda()#1}::operator()()
fbcode/folly/coro/Task.h:510
@ 0000000000c604fc void folly::detail::function::call_::Awaiter::await_suspend(std::__n4861::coroutine_handle)::{lambda()#1}, true, false, void>(, folly::detail::function::Data&)
fbcode/folly/Function.h:341
@ 00000000013b8172 folly::detail::function::FunctionTraits::operator()()
fbcode/folly/Function.h:370
@ 00000000013d92dc folly::EventBase::FunctionLoopCallback::runLoopCallback()
fbcode/folly/io/async/EventBase.h:188
@ 00000000013d08fa folly::EventBase::runLoopCallbackList(boost::intrusive::list >&, folly::EventBase::LoopCallbacksDeadline const&)
./fbcode/folly/io/async/EventBase.cpp:1028
@ 00000000013b27e9 folly::EventBase::runLoopCallbacks()
./fbcode/folly/io/async/EventBase.cpp:1049
@ 00000000013cd150 folly::EventBase::loopMain(int, folly::EventBase::LoopOptions)
./fbcode/folly/io/async/EventBase.cpp:657
@ 00000000013c8515 folly::EventBase::loopBody(int, folly::EventBase::LoopOptions)
./fbcode/folly/io/async/EventBase.cpp:539
@ 00000000013c8256 folly::EventBase::loop()
./fbcode/folly/io/async/EventBase.cpp:500
@ 00000000013d6c2b folly::EventBase::loopForever()
./fbcode/folly/io/async/EventBase.cpp:811
@ 0000000002829ea2 folly::run(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range)
./fbcode/folly/io/async/ScopedEventBaseThread.cpp:40
@ 000000000282af6e void std::__invoke_impl*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range >(std::__invoke_other, void (*&&)(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range), folly::EventBaseManager*&&, folly::EventBase*&&, folly::Baton*&&, folly::Range&&)
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/invoke.h:61
@ 000000000282add4 std::__invoke_result*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range >::type std::__invoke*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range >(void (*&&)(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range), folly::EventBaseManager*&&, folly::EventBase*&&, folly::Baton*&&, folly::Range&&)
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/invoke.h:96
@ 000000000282ad94 void std::thread::_Invoker*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>)
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:253
@ 000000000282ad24 std::thread::_Invoker*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range > >::operator()()
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:260
@ 000000000282a898 std::thread::_State_impl*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range > > >::_M_run()
fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:211
@ 00000000000df5b4 execute_native_thread_routine
/home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/src/c++11/../../../.././libstdc++-v3/src/c++11/thread.cc:82
@ 0000000000f43a66 asan_thread_start(void*)
@ 000000000009abc8 start_thread
/home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_create.c:434
@ 000000000012ce4b __clone3
/home/engshare/third-party2/glibc/2.34/src/glibc-2.34/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

*** Check failure async stack trace: ***
*** First async stack root: 0x75e09e8153c0, normal stack frame pointer holding async stack root: 0x75e09f9fdb30, return address: 0xc60c03 ***
*** First async stack frame pointer: 0x51f0000196a0, return address: 0xc5e137, async stack trace: ***
@ 00000000030b1294 folly::symbolizer::(anonymous namespace)::innerSignalHandler(int, siginfo_t*, void*)
./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:554
@ 00000000030afeec folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*)
./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:572
@ 0000000000c5e137 decltype ((((*this).awaiter_).await_suspend)({parm#1})) folly::coro::detail::ValueOnlyAwaiterBase >::await_suspend(std::__n4861::coroutine_handle)
fbcode/folly/coro/ViaIfAsync.h:638
@ 00000000010d4ad1 moxygen::MoQSession::onPublish(moxygen::PublishRequest)
./fbcode/ti/experimental/moxygen/MoQSession.cpp:3962
@ 0000000001966a06 folly::detached_task()
./fbcode/folly/tracing/AsyncStack.cpp:169
AddressSanitizer:DEADLYSIGNAL
=================================================================
==3265319==ERROR: AddressSanitizer: SEGV on unknown address 0x00000031d327 (pc 0x75e0a329c993 bp 0x75e0a2deb8d0 sp 0x75e0a2deb8c0 T1)
==3265319==The signal is caused by a READ memory access.
SCARINESS: 20 (wild-addr-read)
#0 0x75e0a329c993 in __pthread_kill_internal /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_kill.c:46:37
#1 0x75e0a329c993 in pthread_kill@@GLIBC_2.34 /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_kill.c:62:10
#2 0x75e0a32444ac in gsignal /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/posix/raise.c:26:13
#3 0x0000030b15cc in folly::symbolizer::(anonymous namespace)::callPreviousSignalHandler(int, siginfo_t*) fbcode/folly/debugging/symbolizer/SignalHandler.cpp:219
#4 0x0000030aff0f in folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*) fbcode/folly/debugging/symbolizer/SignalHandler.cpp:576
#5 0x75e0a324455f /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/unix/sysv/linux/libc_sigaction.c:8
#6 0x000000c252ae in moxygen::MoQRelay::publish(moxygen::PublishRequest, std::shared_ptr) fbcode/ti/experimental/moxygen/relay/MoQRelay.cpp
#7 0x000000c2be5b in non-virtual thunk to moxygen::MoQRelay::publish(moxygen::PublishRequest, std::shared_ptr) fbcode/ti/experimental/moxygen/relay/MoQRelay.cpp
#8 0x00000131e783 in moxygen::MoQSession::handlePublish(moxygen::PublishRequest, std::shared_ptr) (.resume) fbcode/ti/experimental/moxygen/MoQSession.cpp:3991
#9 0x000000cd92e3 in std::__n4861::coroutine_handle::resume() const fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/coroutine:127
#10 0x000001966bed in folly::resumeCoroutineWithNewAsyncStackRoot(std::__n4861::coroutine_handle, folly::AsyncStackFrame&) fbcode/folly/tracing/AsyncStack.cpp:199
#11 0x000000c60c02 in void folly::resumeCoroutineWithNewAsyncStackRoot>(std::__n4861::coroutine_handle>) fbcode/folly/tracing/AsyncStack-inl.h:88
#12 0x000000c60909 in void folly::coro::TaskWithExecutor::Awaiter::await_suspend(std::__n4861::coroutine_handle)::'lambda'()::operator()() fbcode/folly/coro/Task.h:510
#13 0x000000c604fc in void folly::detail::function::call_::Awaiter::await_suspend(std::__n4861::coroutine_handle)::'lambda'(), true, false, void>(folly::detail::function::Data&) fbcode/folly/Function.h:341
#14 0x0000013b8172 in folly::detail::function::FunctionTraits::operator()() fbcode/folly/Function.h:370
#15 0x0000013d92dc in folly::EventBase::FunctionLoopCallback::runLoopCallback() fbcode/folly/io/async/EventBase.h:188
#16 0x0000013d08fa in folly::EventBase::runLoopCallbackList(boost::intrusive::list>&, folly::EventBase::LoopCallbacksDeadline const&) fbcode/folly/io/async/EventBase.cpp:1028
#17 0x0000013b27e9 in folly::EventBase::runLoopCallbacks() fbcode/folly/io/async/EventBase.cpp:1049
#18 0x0000013cd150 in folly::EventBase::loopMain(int, folly::EventBase::LoopOptions) fbcode/folly/io/async/EventBase.cpp:657
#19 0x0000013c8515 in folly::EventBase::loopBody(int, folly::EventBase::LoopOptions) fbcode/folly/io/async/EventBase.cpp:539
#20 0x0000013c8256 in folly::EventBase::loop() fbcode/folly/io/async/EventBase.cpp:500
#21 0x0000013d6c2b in folly::EventBase::loopForever() fbcode/folly/io/async/EventBase.cpp:811
#22 0x000002829ea2 in folly::run(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range) fbcode/folly/io/async/ScopedEventBaseThread.cpp:40
#23 0x00000282af6e in void std::__invoke_impl*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>(std::__invoke_other, void (*&&)(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range), folly::EventBaseManager*&&, folly::EventBase*&&, folly::Baton*&&, folly::Range&&) fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/invoke.h:61
#24 0x00000282add4 in std::__invoke_result*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>::type std::__invoke*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>(void (*&&)(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range), folly::EventBaseManager*&&, folly::EventBase*&&, folly::Baton*&&, folly::Range&&) fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/invoke.h:96
#25 0x00000282ad94 in void std::thread::_Invoker*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>>::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:253
#26 0x00000282ad24 in std::thread::_Invoker*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>>::operator()() fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:260
#27 0x00000282a898 in std::thread::_State_impl*, folly::Range), folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range>>>::_M_run() fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:211
#28 0x75e0a2edf5b4 in execute_native_thread_routine /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/src/c++11/../../../.././libstdc++-v3/src/c++11/thread.cc:82:18
#29 0x000000f43a66 in asan_thread_start(void*) Kill.cpp
#30 0x75e0a329abc8 in start_thread /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_create.c:434:8
#31 0x75e0a332ce4b in __GI___clone3 /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

==3265319==Register values:
rax = 0x0000000000000000 rbx = 0x000075e0a2deb900 rcx = 0x000075e0a329c993 rdx = 0x000000000000000b
rdi = 0x000000000031d327 rsi = 0x000000000031d328 rbp = 0x000075e0a2deb8d0 rsp = 0x000075e0a2deb8c0
r8 = 0x000075e09ea60420 r9 = 0x0000000000000007 r10 = 0x000075e0a3212f98 r11 = 0x0000000000000206
r12 = 0x000000000031d328 r13 = 0x000000000000000b r14 = 0x000075e0a2d9d000 r15 = 0x000075e0a2edf5a0
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_kill.c:46:37 in __pthread_kill_internal
Thread T1 created by T0 here:
#0 0x000000f2b531 in pthread_create (/home/ubuntu/afrind/MoQRelayServer+0xf2b531) (BuildId: 9aed3227180046420c4e9ad3a1440e87)
#1 0x75e0a2edf8de in __gthread_create /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/include/x86_64-facebook-linux/bits/gthr-default.h:663:35
#2 0x75e0a2edf8de in std::thread::_M_start_thread(std::unique_ptr>, void (*)()) /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/src/c++11/../../../.././libstdc++-v3/src/c++11/thread.cc:147:37
#3 0x00000282a4d7 in std::thread::thread*, folly::Range), folly::EventBaseManager*&, folly::EventBase*, folly::Baton*, folly::Range&, void>(void (&)(folly::EventBaseManager*, folly::EventBase*, folly::Baton*, folly::Range), folly::EventBaseManager*&, folly::EventBase*&&, folly::Baton*&&, folly::Range&) fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/std_thread.h:143
#4 0x0000028299c3 in folly::ScopedEventBaseThread::ScopedEventBaseThread(folly::EventBase::Options, folly::EventBaseManager*, folly::Range) fbcode/folly/io/async/ScopedEventBaseThread.cpp:68
#5 0x0000021da0cb in std::_MakeUniq::__single_object std::make_unique(folly::EventBase::Options&, std::nullptr_t&&, char const (&) [1]) fbcode/third-party-buck/platform010/build/libgcc/include/c++/trunk/bits/unique_ptr.h:962
#6 0x0000021d97ac in quic::QuicServer::start(folly::SocketAddress const&, unsigned long) fbcode/quic/server/QuicServer.cpp:158
#7 0x000001494bac in quic::samples::HQServer::start(folly::SocketAddress const&, std::vector>) fbcode/proxygen/httpserver/samples/hq/HQServer.cpp:319
#8 0x000000ea1f53 in moxygen::MoQServer::start(folly::SocketAddress const&, std::vector>) fbcode/ti/experimental/moxygen/MoQServer.cpp:123
#9 0x000000bbf4be in moxygen::MoQServer::start(folly::SocketAddress const&) fbcode/ti/experimental/moxygen/MoQServer.h:39
#10 0x000000bbc87f in main fbcode/ti/experimental/moxygen/relay/MoQRelayServer.cpp:113
#11 0x75e0a322c656 in __libc_start_call_main /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#12 0x75e0a322c717 in __libc_start_main@GLIBC_2.2.5 /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../csu/libc-start.c:409:3
#13 0x000000bb7320 in _start /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/x86_64/start.S:116
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.