Skip to content

Occasional crash with audio buffer #913

@jaremieromer

Description

@jaremieromer

I ran into this exactly once in LOTS of doing the same thing (launch the sample, move the worm in the physics test scene, adjust lighting), but the sample crashed with the following error:

Assertion failed: bufferFrames == m_deviceStream.GetBufferFrames(), file C:\Source\NcEngine\source\ncengine\audio\NcAudioImpl.cpp, line 185

Steps to Reproduce

  1. Open the sample
  2. Play around with the physics scene.

This is very intermittent, and I don't know what it is that was different to cause this.

Call Stack Thread 1

Sample.exe!issue_debug_notification(const wchar_t * const message) Line 28 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp:28)
Sample.exe!__acrt_report_runtime_error(const wchar_t * message) Line 154 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp:154)
Sample.exe!abort() Line 61 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\startup\abort.cpp:61)
Sample.exe!common_assert_to_stderr<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number) Line 187 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:187)
Sample.exe!common_assert<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number, void * const return_address) Line 420 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:420)
Sample.exe!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444 (c:\Users\jarem\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:444)
Sample.exe!nc::audio::NcAudioImpl::WriteToDeviceBuffer(double * output, unsigned int bufferFrames) Line 185 (c:\Source\NcEngine\source\ncengine\audio\NcAudioImpl.cpp:185)
Sample.exe!`anonymous namespace'::AudioSystemCallback(void * outputBuffer, void * __formal, unsigned int nBufferFrames, double __formal, unsigned int __formal, void * userData) Line 47 (c:\Source\NcEngine\source\ncengine\audio\NcAudioImpl.cpp:47)
Sample.exe!RtApiWasapi::wasapiThread() Line 5949 (c:\Source\NcEngine\source\external\rtaudio\RtAudio.cpp:5949)
Sample.exe!RtApiWasapi::runWasapiThread(void * wasapiPtr) Line 5555 (c:\Source\NcEngine\source\external\rtaudio\RtAudio.cpp:5555)
kernel32.dll!00007ffd54b6e8d7() (Unknown Source:0)
ntdll.dll!00007ffd5557bf6c() (Unknown Source:0)

Call Stack Thread 2

ntdll.dll!00007ffd5561f874() (Unknown Source:0)
KernelBase.dll!00007ffd52c7ce4f() (Unknown Source:0)
Sample.exe!RtApiWasapi::stopStream() Line 5298 (c:\Source\NcEngine\source\external\rtaudio\RtAudio.cpp:5298)
Sample.exe!RtAudio::stopStream() Line 918 (c:\Source\NcEngine\source\external\rtaudio\RtAudio.h:918)
Sample.exe!nc::audio::DeviceStream::CloseStream() Line 144 (c:\Source\NcEngine\source\ncengine\audio\DeviceStream.cpp:144)
Sample.exe!nc::audio::DeviceStream::~DeviceStream() Line 82 (c:\Source\NcEngine\source\ncengine\audio\DeviceStream.cpp:82)
Sample.exe!nc::audio::NcAudioImpl::~NcAudioImpl() Line 117 (c:\Source\NcEngine\source\ncengine\audio\NcAudioImpl.cpp:117)
Sample.exe!nc::audio::NcAudioImpl::`scalar deleting destructor'(unsigned int) (Unknown Source:0)
Sample.exe!std::default_delete<nc::Module>::operator()(nc::Module * _Ptr) Line 3302 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3302)
Sample.exe!std::unique_ptr<nc::Module,std::default_delete<nc::Module>>::~unique_ptr<nc::Module,std::default_delete<nc::Module>>() Line 3412 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3412)
Sample.exe!std::unique_ptr<nc::Module,std::default_delete<nc::Module>>::`scalar deleting destructor'(unsigned int) (Unknown Source:0)
Sample.exe!std::destroy_at<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>(std::unique_ptr<nc::Module,std::default_delete<nc::Module>> * const _Location) Line 306 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\xmemory:306)
Sample.exe!std::_Default_allocator_traits<std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>>::destroy<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>(std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>> & __formal, std::unique_ptr<nc::Module,std::default_delete<nc::Module>> * const _Ptr) Line 707 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\xmemory:707)
Sample.exe!std::_Destroy_range<std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>>(std::unique_ptr<nc::Module,std::default_delete<nc::Module>> * _First, std::unique_ptr<nc::Module,std::default_delete<nc::Module>> * const _Last, std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>> & _Al) Line 1067 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\xmemory:1067)
Sample.exe!std::vector<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>,std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>>::_Tidy() Line 2050 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\vector:2050)
Sample.exe!std::vector<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>,std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>>::~vector<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>,std::allocator<std::unique_ptr<nc::Module,std::default_delete<nc::Module>>>>() Line 763 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\vector:763)
Sample.exe!nc::ModuleRegistry::~ModuleRegistry() (Unknown Source:0)
Sample.exe!nc::ModuleRegistry::`scalar deleting destructor'(unsigned int) (Unknown Source:0)
Sample.exe!std::default_delete<nc::ModuleRegistry>::operator()(nc::ModuleRegistry * _Ptr) Line 3302 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3302)
Sample.exe!std::unique_ptr<nc::ModuleRegistry,std::default_delete<nc::ModuleRegistry>>::~unique_ptr<nc::ModuleRegistry,std::default_delete<nc::ModuleRegistry>>() Line 3412 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3412)
Sample.exe!nc::NcEngineImpl::~NcEngineImpl() Line 92 (c:\Source\NcEngine\source\ncengine\engine\NcEngineImpl.cpp:92)
Sample.exe!nc::NcEngineImpl::`scalar deleting destructor'(unsigned int) (Unknown Source:0)
Sample.exe!std::default_delete<nc::NcEngine>::operator()(nc::NcEngine * _Ptr) Line 3302 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3302)
Sample.exe!std::unique_ptr<nc::NcEngine,std::default_delete<nc::NcEngine>>::~unique_ptr<nc::NcEngine,std::default_delete<nc::NcEngine>>() Line 3412 (c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\memory:3412)
Sample.exe!main(int argc, char * * argv) Line 71 (c:\Source\NcEngine\sample\source\SampleMain.cpp:71)
Sample.exe!invoke_main() Line 79 (d:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79)
Sample.exe!__scrt_common_main_seh() Line 288 (d:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
Sample.exe!__scrt_common_main() Line 331 (d:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
Sample.exe!mainCRTStartup(void * __formal) Line 17 (d:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17)
kernel32.dll!00007ffd54b6e8d7() (Unknown Source:0)
ntdll.dll!00007ffd5557bf6c() (Unknown Source:0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions