Running into an intermittent (but regular enough for noticeable crash rates) crash in AudioStreamingCache.
Running UE 5.4.3, this issue looked like the same basic issue:
Unreal Engine Issues and Bug Tracker (UE-209483)
And I have locally applied this patch but am still seeing the callstack appear, so I am thinking there must still be a missing AddRef somewhere.
Any thoughts on what I can do to prevent this?
[ 00 ] RaiseException ( KERNELBASE.dll ) [ 01 ] ReportEventOnCallingThread(ECrashContextType,wchar_t const *,void *) ( WindowsPlatformCrashContext.cpp:1741 ) [ 02 ] ReportEvent(ECrashContextType,wchar_t const *,unsigned int,void *) ( WindowsPlatformCrashContext.cpp:1781 ) [ 03 ] FDebug::EnsureFailed(char const *,char const *,int,void *,wchar_t const *) ( AssertionMacros.cpp:572 ) [ 04 ] FDebug::OptionallyLogFormattedEnsureMessageReturningFalseImpl(bool,char const *,char const *,int,void *,wchar_t const *,char *) ( AssertionMacros.cpp:711 ) [ 05 ] FDebug::OptionallyLogFormattedEnsureMessageReturningFalse(bool,char const *,char const *,int,void *,wchar_t const *,char *) ( AssertionMacros.h:149 ) [ 06 ] CheckVerifyImpl(std::atomic &,bool,char const *,int,void *,char const *,wchar_t const *,char *) ( AssertionMacros.cpp:762 ) [ 07 ] UE::Assert::Private::ExecCheckImplInternal(std::atomic &,bool,char const *,int,char const *) ( AssertionMacros.cpp:787 ) [ 08 ] FAudioChunkCache::RemoveReferenceToChunk(FAudioChunkCache::FChunkKey const &) ( AudioStreamingCache.cpp:991 ) [ 09 ] FCachedAudioStreamingManager::RemoveReferenceToChunk(FAudioChunkHandle const &) ( AudioStreamingCache.cpp:701 ) [ 10 ] FAudioChunkHandle::~FAudioChunkHandle() ( ContentStreaming.cpp:1568 ) [ 11 ] IStreamedCompressedInfo::~IStreamedCompressedInfo() ( AudioDecompress.h:203 ) [ 12 ] FBinkAudioInfo::`scalar deleting destructor’(unsigned int) ( PhoenixSteam.exe ) [ 13 ] TDefaultDelete::operator()(ICompressedAudioInfo *) ( UniquePtr.h:64 ) [ 14 ] TUniquePtr<ICompressedAudioInfo,TDefaultDelete >::{dtor}() ( UniquePtr.h:266 ) [ 15 ] TDefaultDelete::operator()(FSoundWaveProxyReader *) ( UniquePtr.h:64 ) [ 16 ] TUniquePtr<FSoundWaveProxyReader,TDefaultDelete >::Reset(FSoundWaveProxyReader *) ( UniquePtr.h:343 ) [ 17 ] Metasound::FWavePlayerOperator::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundWavePlayerNode.cpp:485 ) [ 18 ] Metasound::FGraphOperator::FResetEntry::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:232 ) [ 19 ] Metasound::FGraphOperator::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:195 ) [ 20 ] Metasound::MetasoundExecutableOperatorPrivate::TResetFunctionAdapterMetasound::FGraphOperator::ResetFunction(Metasound::IOperator *,Metasound::IOperator::FResetParams const &) ( MetasoundExecutableOperator.h:70 ) [ 21 ] Metasound::FGraphOperator::FResetEntry::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:232 ) [ 22 ] Metasound::FGraphOperator::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:195 ) [ 23 ] Metasound::MetasoundExecutableOperatorPrivate::TResetFunctionAdapterMetasound::FGraphOperator::ResetFunction(Metasound::IOperator *,Metasound::IOperator::FResetParams const &) ( MetasoundExecutableOperator.h:70 ) [ 24 ] Metasound::FGraphOperator::FResetEntry::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:232 ) [ 25 ] Metasound::FGraphOperator::Reset(Metasound::IOperator::FResetParams const &) ( MetasoundGraphOperator.cpp:195 ) [ 26 ] Metasound::MetasoundExecutableOperatorPrivate::TResetFunctionAdapterMetasound::FGraphOperator::ResetFunction(Metasound::IOperator *,Metasound::IOperator::FResetParams const &) ( MetasoundExecutableOperator.h:70 ) [ 27 ] Metasound::FMetasoundConstGraphGenerator::ReleaseOperatorToCache() ( MetasoundGenerator.cpp:933 ) [ 28 ] Metasound::FMetasoundConstGraphGenerator::~FMetasoundConstGraphGenerator() ( MetasoundGenerator.cpp:864 ) [ 29 ] SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference::__l5::<lambda_1>::operator()() ( SharedPointerInternals.h:227 ) [ 30 ] OnCommit(SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference::__l5::<lambda_1> const &) ( AutoRTFM.h:464 ) [ 31 ] SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference() ( SharedPointerInternals.h:216 ) [ 32 ] SharedPointerInternals::FSharedReferencer<1>::{dtor}() ( SharedPointerInternals.h:606 ) [ 33 ] Audio::FMixerSourceBuffer::~FMixerSourceBuffer() ( AudioMixerSourceBuffer.cpp:146 ) [ 34 ] Audio::FMixerSourceBuffer::`scalar deleting destructor’(unsigned int) ( PhoenixSteam.exe ) [ 35 ] SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference::__l5::<lambda_1>::operator()() ( SharedPointerInternals.h:227 ) [ 36 ] OnCommit(SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference::__l5::<lambda_1> const &) ( AutoRTFM.h:464 ) [ 37 ] SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReference() ( SharedPointerInternals.h:216 ) [ 38 ] SharedPointerInternals::FSharedReferencer<1>::{dtor}() ( SharedPointerInternals.h:606 ) [ 39 ] DestructItems(TSharedPtrAudio::FMixerSourceBuffer,1 *,int) ( MemoryOps.h:95 ) [ 40 ] TArray<TSharedPtrAudio::FMixerSourceBuffer,1,TSizedDefaultAllocator<32> >::RemoveAtSwapImpl(int,int) ( Array.h:1823 ) [ 41 ] TArray<TSharedPtrAudio::FMixerSourceBuffer,1,TSizedDefaultAllocator<32> >::RemoveAtSwap(int,int,EAllowShrinking) ( Array.h:1881 ) [ 42 ] Audio::FMixerSourceManager::UpdatePendingReleaseData(bool) ( AudioMixerSourceManager.cpp:3575 ) [ 43 ] Audio::FMixerSourceManager::ComputeNextBlockOfSamples() ( AudioMixerSourceManager.cpp:3298 ) [ 44 ] Audio::FMixerDevice::OnProcessAudioStream(TArray<float,TAlignedHeapAllocator<16> > &) ( AudioMixerDevice.cpp:921 ) [ 45 ] Audio::FOutputBuffer::MixNextBuffer() ( AudioMixer.cpp:247 ) [ 46 ] Audio::IAudioMixerPlatformInterface::RunInternal() ( AudioMixer.cpp:747 ) [ 47 ] Audio::IAudioMixerPlatformInterface::Run() ( AudioMixer.cpp:793 ) [ 48 ] FRunnableThreadWin::Run() ( WindowsRunnableThread.cpp:149 ) [ 49 ] FRunnableThreadWin::GuardedRun() ( WindowsRunnableThread.cpp:79 ) [ 50 ] BaseThreadInitThunk ( kernel32.dll ) [ 51 ] RtlUserThreadStart ( ntdll.dll )