Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

Unreal 14.4 Crash in event with play, seek and streaming.

+3 votes

Hi.

We have just upgraded to Unreal 14.4 and the corresponding WWise plugin. Also upgraded wwise tool and rebuild soundbanks/wem.

Many files are streamed Wem files.

After the upgrade our game has started crashing in CAkUnrealIOHookDeferred::Read  when entering  FIOSystem & IO = FIOSystem::Get();  (?)  where it tries to allocate 18446744072564227002 bytes.

I tracked it down to occur when a special event was played. The event does 'play' and a "seek" 38 seconds into the same audio file. The audio file was set to streaming.

Problem was solved by turning off streaming.   (NOTE: It I do an ingame reload of the level, the game will crash on this 'fixed' event again. )  (And no sounds play when we reload the level.. And this also happened before we did the upgrade which makes me believe this problem is on my side... )

 

But we also one other crash which I have found no solution to.

This crash happens in:

CAkUnrealIOHookDeferred::Close  what seems to be related to the line IO.HintDoneWithFile(*((FString*)in_fileDesc.pCustomParam));

Ran out of memory allocating 18446744072564227002 bytes with alignment 0

 

I've tried to delete old intermediate files and soundbanks, then rebuild all in a hope that the problem was on my side only. No luck.

 

So I guess the question is, Does anyone else have related problems?

 

 

 

 

asked Dec 2, 2016 in General Discussion by Arnleif M. (340 points)
I've now tested with an empty level that just plays 1 sound on starts and then reloads the level after 7 seconds. I've also stripped away all but 1 sound in the main soundbank.

All sounds are gone after the reload. Even when you stop and restart the 'game'. Only a restart of unreal fixes sound. Normal unreal sound still work. (The crash hardly happens now, but it has occurred at least one time. That was in CAkUnrealIOHookDeferred::Close on shutdown of 'game')

When the level is loaded the second time, that is when the sound goes away, this line is in the log:

LogLoad: Took 0.044536 seconds to LoadMap(/Game/Developers/Arnleif/UEDPIE_0_ArnleifsTestMap)
[2016.12.06-09.22.02:897][133]LogAkAudio: Audio thread suspended.  Audio output will be silent.

Just a log message. Not an error or warning. I have no clue where it comes from or why.

So it seems like something that is not so dangerous happens, but it leads to all audio to be silent. (Which for me is a serious thing..)

The log will not say anything about banks not being loaded or events not being found.

(I have an oculus connected, in case this has any impact at all..)


Does anyone know what causes the log message "Audio thread suspended.  Audio output will be silent."   ?
Hi,
We are experiencing a similar issue. The function LoadData of AsyncIOSystemBase receives an Invalid FileName and crashes afterwards. We will try turning off the streaming (thanks for the hint, Arnleif), but for us is just a temporary solution, we can't work with that in a long term.

We haven't experienced the log message you talk about.
Same here in 4.14.1. The issue seems to be connected to "CAkUnrealIOHookDeferred::Close" with an "in_fileDesc.pCustomParam" pointing to an invalid FString pointer

>    UE4Editor-Core-Win64-Debug.dll!TArray<wchar_t,FDefaultAllocator>::ResizeForCopy(int NewMax=-572662307, int PrevMax=0) Line 2263    C++
     UE4Editor-Core-Win64-Debug.dll!TArray<wchar_t,FDefaultAllocator>::CopyToEmpty<wchar_t>(const wchar_t * OtherData=0x0000000000000000, int OtherNum=-572662307, int PrevMax=0, int ExtraSlack=0) Line 2291    C++
     UE4Editor-Core-Win64-Debug.dll!TArray<wchar_t,FDefaultAllocator>::operator=(const TArray<wchar_t,FDefaultAllocator> & Other={...}) Line 422    C++
     UE4Editor-Core-Win64-Debug.dll!FAsyncIOSystemBase::QueueDestroyHandleRequest(const FString & FileName={...}) Line 111    C++
     UE4Editor-Core-Win64-Debug.dll!FAsyncIOSystemBase::PlatformHandleHintDoneWithFile(const FString & Filename={...}) Line 202    C++
     UE4Editor-Core-Win64-Debug.dll!FAsyncIOSystemBase::HintDoneWithFile(const FString & Filename={...}) Line 581    C++
     UE4Editor-AkAudio-Win64-Debug.dll!CAkUnrealIOHookDeferred::Close(AkFileDesc & in_fileDesc={...}) Line 340    C++
     UE4Editor-AkAudio-Win64-Debug.dll!AK::StreamMgr::CAkStmTask::~CAkStmTask() Line 963    C++
     UE4Editor-AkAudio-Win64-Debug.dll!AK::StreamMgr::CAkAutoStmDeferredLinedUp::`scalar deleting destructor'(unsigned int)    C++
     UE4Editor-AkAudio-Win64-Debug.dll!AK::StreamMgr::CAkDeviceBase::SchedulerFindNextTask(float & out_fOpDeadline=0.000000000) Line 487    C++
     UE4Editor-AkAudio-Win64-Debug.dll!AK::StreamMgr::CAkDeviceDeferredLinedUp::PerformIO() Line 225    C++
     UE4Editor-AkAudio-Win64-Debug.dll!AK::StreamMgr::CAkIOThread::IOSchedThread(void * lpParameter=0x0000027259ff0a58) Line 297    C++
     kernel32.dll!BaseThreadInitThunk() + 20 bytes    Unknown
     ntdll.dll!RtlUserThreadStart() + 33 bytes    Unknown
We're also having the same crash, when it tries to read from the StreamManager.

FAsyncIOSystemBase::QueueIORequest
FAsyncIOSystemBase::LoadData
CAkUnrealIOHookDeferred::Read
AK::StreamMgr::CAkLowLevelTransferDeferred::Execute
AK::StreamMgr::CAkDeviceDeferredLinedUp::ExecuteTask
AK::StreamMgr::CAkDeviceDeferredLinedUp::PerformIO
AK::StreamMgr::CAkIOThread::IOSchedThread


  The AkFileDesc structure's customParam is pointing to a bad FString - the FString's data field points to freed memory, and fails on this:

IORequest.FileNameHash = FCrc::StrCrc32<TCHAR>(*FileName.ToLower());

 I don't think the refcounting of FStrings is being handled nicely, but that's just a guess.

1 Answer

+1 vote
Support tells me that the Unreal Integration team is working on the problem (The crashing). Apparently any fix will not be in Wwise 2016.2.1, but probably the next.
answered Dec 9, 2016 by Arnleif M. (340 points)
The log message "Audio thread suspended.  Audio output will be silent."  is related to Oculus being connected. Disconnecting Oculus will make sound not go away on reload of level.
...