커뮤니티 Q&A

Audiokinetic의 커뮤니티 Q&A 포럼에 오신 것을 환영합니다. 이 포럼은 Wwise와 Strata 사용자들이 서로 도움을 주는 곳입니다. Audiokinetic의 직접적인 도움을 얻으려면 지원 티켓 페이지를 사용하세요. 버그를 보고하려면 Audiokinetic 런처에서 Bug Report 옵션을 사용하세요. (Q&A 포럼에 제출된 버그 보고는 거절됩니다. 전용 Bug Report 시스템을 사용하면 보고 내용이 담당자에게 정확히 전달되어 문제 해결 가능성이 크게 높아집니다.)<segment 6493>

빠르고 정확한 답변을 얻으려면 질문을 올릴 때 다음 팁을 참고하세요.

  • 구체적인 내용을 적어주세요: 무엇을 하려는지, 혹은 어떤 특정 문제에 부딪혔는지 설명하세요.
  • 핵심 정보를 포함하세요: Wwise와 게임 엔진 버전, 운영체제 등 관련 정보를 함께 제공하세요.
  • 시도한 방법들을 알려주세요: 문제 해결을 위해 이미 어떤 단계를 시도해봤는지 설명해주세요.
  • 객관적인 사실에 초점을 맞추세요: 문제의 기술적 사실을 중심으로 설명하세요. 문제에 집중할수록 다른 사람들이 더 빠르게 해결책을 찾을 수 있습니다.

0 투표

Unreal Integration Crash

after switching to auto defined banks we started seeing this intermittent crash.

we saw in the 2024.1.7 there was a potential fix, so we took it.

  • WG-77946 Fixed: Possible crash caused by using TQueue for ExecutionQueue and DeferredQueue.

there were changes to FWwiseExecutionQueue, which is in the callstack below.

we are still seeing the crash.
any official response would be appreciated.
and/or any known workarounds would be appreciated.
please let us know if this is still a known issue.crying



[ 00 ] FIoBatch::{ctor}(FIoDispatcherImpl &) ( IoDispatcher.cpp:1005 ) [ 01 ] FIoDispatcher::NewBatch() ( IoDispatcher.cpp:920 ) [ 02 ] UE::BulkData::Private::FChunkRequest::Issue(FIoChunkId,FIoReadOptions,int) ( BulkDataStreaming.cpp:95 ) [ 03 ] UE::BulkData::Private::CreateStreamingRequest(UE::BulkData::Private::FBulkMetaData const &,FIoChunkId const &,__int64,__int64,EAsyncIOPriorityAndFlags,TFunction<void __cdecl(bool,IBulkDataIORequest *)> *,unsigned char *) ( BulkDataStreaming.cpp:444 ) [ 04 ] FBulkData::CreateStreamingRequest(__int64,__int64,EAsyncIOPriorityAndFlags,TFunction<void __cdecl(bool,IBulkDataIORequest *)> *,unsigned char *) ( BulkData.cpp:1608 ) [ 05 ] FWwiseBulkDataCacheHandle::ReadData(unsigned char *,__int64,__int64,EAsyncIOPriorityAndFlags,TUniqueFunction<void __cdecl(bool)> &&) ( WwiseBulkDataCacheHandle.cpp:193 ) [ 06 ] IWwiseFileCacheHandle::ReadAkData(AkIoHeuristics const &,AkAsyncIOTransferInfo &,TUniqueFunction<void __cdecl(AkAsyncIOTransferInfo *,enum AKRESULT)> &&) ( WwiseFileCache.cpp:59 ) [ 07 ] FWwiseStreamedMediaFileState::ProcessRead(AkFileDesc &,AkIoHeuristics const &,AkAsyncIOTransferInfo &,TUniqueFunction<void __cdecl(AkAsyncIOTransferInfo *,enum AKRESULT)> &&) ( WwiseMediaFileState.cpp:364 ) [ 08 ] FWwiseIOHookImpl::Read(AkFileDesc &,AkIoHeuristics const &,AkAsyncIOTransferInfo &) ( WwiseIOHookImpl.cpp:187 ) [ 09 ] `FWwiseIOHookImpl::BatchRead'::`2'::<lambda_1>::operator()() ( WwiseIOHookImpl.cpp:234 ) [ 10 ] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() ( Function.h:470 ) [ 11 ] FWwiseExecutionQueue::ProcessWork() ( WwiseExecutionQueue.cpp:411 ) [ 12 ] FWwiseExecutionQueue::Work() ( WwiseExecutionQueue.cpp:335 ) [ 13 ] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() ( Function.h:470 ) [ 14 ] Invoke(TUniqueFunction<void __cdecl(void)> &) ( Invoke.h:47 ) [ 15 ] UE::Tasks::Private::TExecutableTaskBase<TUniqueFunction<void (void)>,void,void>::ExecuteTask() ( TaskPrivate.h:876 ) [ 16 ] UE::Trace::FChannel::operator|(UE::Trace::FChannel const &) ( Channel.inl:29 ) [ 17 ] TaskTrace::FTaskTimingEventScope::{ctor}(unsigned __int64) ( TaskTrace.cpp:301 ) [ 18 ] UE::Tasks::Private::FTaskBase::TryExecuteTask() ( TaskPrivate.h:505 ) [ 19 ] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() ( TaskPrivate.h:185 ) [ 20 ] LowLevelTasks::FTask::Init::__l5::<lambda_1>::operator()(bool const) ( Task.h:499 ) [ 21 ] Invoke(LowLevelTasks::FTask::Init::__l5::<lambda_1> &,bool &) ( Invoke.h:47 ) [ 22 ] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`UE::Tasks::Private::FTaskBase::Init'::`2'::<lambda_1> >'::`5'::<lambda_1>,0>::Call(void *,bool) ( TaskDelegate.h:162 ) [ 23 ] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * (bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`UE::Tasks::Private::FTaskBase::Init'::`2'::<lambda_1> >'::`5'::<lambda_1>,0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &,void *,unsigned int,bool) ( TaskDelegate.h:171 ) [ 24 ] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &,bool) ( TaskDelegate.h:308 ) [ 25 ] LowLevelTasks::FTask::ExecuteTask() ( Task.h:627 ) [ 26 ] FCpuProfilerTrace::FEventScope::{ctor}(unsigned int &,char const *,bool,char const *,unsigned int) ( CpuProfilerTrace.h:153 ) [ 27 ] LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask *) ( Scheduler.cpp:244 ) [ 28 ] LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *,LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue *,LowLevelTasks::Private::FOutOfWork &,bool) ( Scheduler.cpp:457 ) [ 29 ] LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent *,LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue *,unsigned int,bool) ( Scheduler.cpp:514 ) [ 30 ] LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent *,LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue *,unsigned int,bool) ( Scheduler.cpp:571 ) [ 31 ] `LowLevelTasks::FScheduler::CreateWorker'::`2'::<lambda_1>::operator()() ( Scheduler.cpp:75 ) [ 32 ] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() ( Function.h:470 ) [ 33 ] FThreadImpl::Run() ( Thread.cpp:68 ) [ 34 ] FRunnableThreadWin::Run() ( WindowsRunnableThread.cpp:159 ) [ 35 ] FRunnableThreadWin::GuardedRun() ( WindowsRunnableThread.cpp:79 ) [ 36 ] BaseThreadInitThunk ( kernel32.dll ) [ 37 ] RtlUserThreadStart ( ntdll.dll )

General Discussion Kate (160 포인트) 로 부터

1 답변

0 투표
 
우수 답변
This crash differs from the one we solved with WG-77946 in Wwise 2024.1.7.

We are aware of this one, and WG-79637 tracks it. We hope to have a fix ready for the next minor release, Wwise 2024.1.8.
Guillaume R. (Audiokinetic) (11.6k 포인트) 로 부터
great! thank you for the reply and confirming.

we added the following to see if it mitigates anything.

in both implementations of ::CanProcessFileOp() const
{
    if (UNLIKELY(State != EState::Loaded))
    {
        UE_LOG(LogWwiseFileHandler, Error, TEXT("FWwiseStreamedExternalSourceFileState::CanProcessFileOp %" PRIu32 " (%s): IO Hook asked for a file operation, but state is not ready."), MediaId, *PackagedFile.PathName.ToString());
        return false;
    }

// custom code start   
    if (UNLIKELY(!FIoDispatcher::IsInitialized()))
    {
        UE_LOG(LogWwiseFileHandler, Error, TEXT("FWwiseStreamedExternalSourceFileState::CanProcessFileOp %" PRIu32 " (%s): IO Hook asked for a file operation, but FIoDispatcher is not initialized."), MediaId, *PackagedFile.PathName.ToString());
        return false;
    }
// custom code end
   
    return true;
}
...