Metasounds crash in TReferenceControllerBase<1>::ReleaseSharedReferenceNoInline

We have had another metasounds crash along the lines of some others I have previously reported.

Is this a known issue?

[Attachment Removed]

Hi Robin. I spoke to the team and we haven’t observed or been able to repro that internally.

Would you be able to provide a full call stack?

[Attachment Removed]

0x00007ff76d5f0d8a Game-XSX-Test.exe!FXboxCommonPlatformStackWalk::CaptureStackBackTrace []
0x00007ff76d6963f1 Game-XSX-Test.exe!FGenericPlatformStackWalk::StackWalkAndDump []
0x00007ff76d5e1686 Game-XSX-Test.exe!ReportCrash []
0x00007ffb6217f19f VCRUNTIME140.dll!UnknownFunction []
0x00007ffb67127e0f ntdll.dll!UnknownFunction []
0x00007ffb6703bfa7 ntdll.dll!UnknownFunction []
0x00007ffb6712774e ntdll.dll!UnknownFunction []
0x00007ff76d60790a Game-XSX-Test.exe!SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReferenceNoInline []
0x00007ff7721bd116 Game-XSX-Test.exe!SharedPointerInternals::TIntrusiveReferenceController<FSoundWaveProxy,1>::DestroyObject []
0x00007ff76d607918 Game-XSX-Test.exe!SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReferenceNoInline []
0x00007ff76ef9a92b Game-XSX-Test.exe!SharedPointerInternals::TIntrusiveReferenceController<AudioModulation::FSoundModulatorAsset,0>::DestroyObject []
0x00007ff76efbaf77 Game-XSX-Test.exe!SharedPointerInternals::TReferenceControllerBase<0>::ReleaseSharedReferenceNoInline []
0x00007ff77371f03d Game-XSX-Test.exe!Metasound::FWavePlayerOperator::~FWavePlayerOperator []
0x00007ff77371e570 Game-XSX-Test.exe!Metasound::FWavePlayerOperator::~FWavePlayerOperator []
0x00007ff76d75518a Game-XSX-Test.exe!DestructItems<TUniquePtr<SCanvas::FSlot,TDefaultDelete<SCanvas::FSlot> >,int> []
0x00007ff77311dc55 Game-XSX-Test.exe!Metasound::FGraphOperator::~FGraphOperator []
0x00007ff773115720 Game-XSX-Test.exe!Metasound::FGraphOperator::~FGraphOperator []
0x00007ff77360d0ff Game-XSX-Test.exe!Metasound::FMetasoundGenerator::~FMetasoundGenerator []
0x00007ff76d607918 Game-XSX-Test.exe!SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReferenceNoInline []
0x00007ff770c1f3c0 Game-XSX-Test.exe!Audio::FMixerSourceBuffer::~FMixerSourceBuffer []
0x00007ff770c30490 Game-XSX-Test.exe!Audio::FMixerSourceBuffer::~FMixerSourceBuffer []
0x00007ff76d607918 Game-XSX-Test.exe!SharedPointerInternals::TReferenceControllerBase<1>::ReleaseSharedReferenceNoInline []
0x00007ff770c07b47 Game-XSX-Test.exe!Audio::FMixerSourceManager::UpdatePendingReleaseData []
0x00007ff770c065b6 Game-XSX-Test.exe!Audio::FMixerSourceManager::ComputeNextBlockOfSamples []
0x00007ff770c05747 Game-XSX-Test.exe!Audio::FMixerDevice::OnProcessAudioStream []
0x00007ff76f5db1a6 Game-XSX-Test.exe!Audio::FOutputBuffer::MixNextBuffer []
0x00007ff76f5dd89a Game-XSX-Test.exe!Audio::IAudioMixerPlatformInterface::RunInternal []
0x00007ff76f5dda7c Game-XSX-Test.exe!Audio::IAudioMixerPlatformInterface::Run []
0x00007ff76d5f15b4 Game-XSX-Test.exe!FRunnableThreadWin::Run []
0x00007ff76d5f14a3 Game-XSX-Test.exe!FRunnableThreadWin::GuardedRun []
0x00007ffb66fce9c2 ntdll.dll!UnknownFunction []

Hi there, apologies for not providing this on the original question.

[Attachment Removed]

Thanks Robin. Just for transparency, Epic goes off on our 2 week summer break starting at the end of tomorrow (Friday) so I think it’s unlikely this will get much attention until everyone is back, but I have passed this to the relevant engineer and will follow up after the holidays to make sure it stays on the to-do list.

[Attachment Removed]

We haven’t really seen that issue in terms of metasounds, but we have seen some similar callstacks related to the FMixerSourceBuffer destructor. Some of these are under active investigation and are generally related to audio hardware device swaps. Two things probably worth checking are:

1. Do you see any device swaps active in the logs around the crashes?

2. Which backend hardware layer are you configured for (XAudio2 vs WASAPI).

I believe 5.7 shipped with XAudio2 as the default backend. If so, I would keep it. But if you’re on WASAPI, you will probably have better stability with XAudio2. These backends are set in the engine INI files. Look for AudioMixerModuleName=AudioMixerWasapi or AudioMixerModuleName=AudioMixerXAudio2

[Attachment Removed]

I cannot find those values explicitly set anywhere in our Engine.ini or platform specific engine.ini files.

Assume this means we would be using the default XAudio2 backend?

[Attachment Removed]

Yes, 5.7 shipped with XAudio2 as the default backend, so that’s likely what you’re using. I would check the logs on some of those crashes for device swaps. What platforms do you see this occuring on?

(Just a note to let you know that Epic on our annual summer break from the end of today, for the next 2 weeks, so unfortunately there won’t be any significant EPS coverage during this period and only extremely urgent support requests will dealt with)

[Attachment Removed]