secondlife / secondlife/viewer

WebRTC crash on vivox under debug

Open
#2,234 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug team:viewer webrtc
Dominant language
C++
Stars
299
Forks
146
Avg merge
1d 9h
Merged PRs (30d)
88

Description

Environment

Local build.

Description
 	llwebrtc.dll!rtc::webrtc_checks_impl::WriteFatalLog(std::basic_string_view<char,std::char_traits<char>> output) Line 88	C++
 	llwebrtc.dll!rtc::webrtc_checks_impl::WriteFatalLog(const char * file, int line, std::basic_string_view<char,std::char_traits<char>> output) Line 102	C++
 	llwebrtc.dll!rtc::webrtc_checks_impl::FatalLog(const char * file, int line, const char * message, const rtc::webrtc_checks_impl::CheckArgType * fmt, ...) Line 197	C++
>	[Inline Frame] llwebrtc.dll!rtc::webrtc_checks_impl::LogStreamer<>::CallCheckOp(const char * file, const int line, const char * message, const rtc::webrtc_checks_impl::Val<3,long long> & args, const rtc::webrtc_checks_impl::Val<1,int> & args, const rtc::webrtc_checks_impl::Val<9,const char *> & args) Line 323	C++
 	[Inline Frame] llwebrtc.dll!rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<3,long long>>::CallCheckOp(const char * file, const int line, const char * message, const rtc::webrtc_checks_impl::Val<1,int> & args, const rtc::webrtc_checks_impl::Val<9,const char *> & args) Line 265	C++
 	[Inline Frame] llwebrtc.dll!rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<1,int>,rtc::webrtc_checks_impl::Val<3,long long>>::CallCheckOp(const char * file, const int line, const char * message, const rtc::webrtc_checks_impl::Val<9,const char *> & args) Line 265	C++
 	[Inline Frame] llwebrtc.dll!rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<9,const char *>,rtc::webrtc_checks_impl::Val<1,int>,rtc::webrtc_checks_impl::Val<3,long long>>::CallCheckOp(const char * file, const int line, const char * message) Line 265	C++
 	[Inline Frame] llwebrtc.dll!rtc::webrtc_checks_impl::FatalLogCall<1>::operator&(const rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<9,const char *>,rtc::webrtc_checks_impl::Val<1,int>,rtc::webrtc_checks_impl::Val<3,long long>> & streamer) Line 345	C++
 	llwebrtc.dll!webrtc::AudioDeviceBuffer::LogStats(webrtc::AudioDeviceBuffer::LogState state) Line 496	C++
 	llwebrtc.dll!webrtc::AudioDeviceBuffer::LogStats::<lambda_4>::operator()() Line 497	C++
 	[External Code]	
 	llwebrtc.dll!absl::internal_any_invocable::InvokeR<void,`lambda at ../../webrtc/webrtc/src/modules/audio_device/audio_device_buffer.cc:497:7',void>(webrtc::AudioDeviceBuffer::LogStats::<lambda_4> && f) Line 133	C++
 	llwebrtc.dll!absl::internal_any_invocable::LocalInvoker<0,void,`lambda at ../../webrtc/webrtc/src/modules/audio_device/audio_device_buffer.cc:497:7' &&>(absl::internal_any_invocable::TypeErasedState * const state) Line 302	C++
 	llwebrtc.dll!absl::internal_any_invocable::Impl<void () &&>::operator()() Line 867	C++
 	llwebrtc.dll!webrtc::`anonymous namespace'::DelayedTaskInfo::Run() Line 98	C++
 	llwebrtc.dll!webrtc::`anonymous namespace'::TaskQueueWin::RunDueTasks() Line 363	C++
 	llwebrtc.dll!webrtc::`anonymous namespace'::TaskQueueWin::RunThreadMain() Line 286	C++
 	llwebrtc.dll!webrtc::`anonymous namespace'::TaskQueueWin::TaskQueueWin::<lambda_0>::operator()() Line 202	C++

SecondLife.log

# Fatal error in: ..\..\webrtc\webrtc\src\modules\audio_device\audio_device_buffer.cc, line 493
# last system error: 0
# Check failed: time_to_wait_ms > 0 (-59226 vs. 0)
# Invalid timer interval
Reproduction steps

Was testing p2p calls on vivox1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the crash stack and the referenced WebRTC audio_device_buffer.cc lines 493-497, then reproduce the debug build failure while testing p2p calls on vivox1. Done means identifying and fixing the invalid timer interval without introducing a crash, and verifying the same scenario no longer triggers the fatal check.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.