eos_plugin_for_unity icon indicating copy to clipboard operation
eos_plugin_for_unity copied to clipboard

Windows build - crash on start due to unhandled exception in EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer

Open PetrBodnar opened this issue 1 year ago • 4 comments

Describe the bug We are implementing EAC in our game. We created a windows build. We are starting it with EACLauncher.exe After EAC launcher finishes loading game crashes.

Desktop (please complete the following information):

  • OS: Windows x64
  • standalone build
  • Unity Version 2021.3.14f1
  • Plugin Version 3.1.3

Additional context We do not use EOSBootstrapper (see my question https://github.com/PlayEveryWare/eos_plugin_for_unity/discussions/654) Could this be causing the problems?

Stacktrace:

[0x0]   ntdll!NtWaitForMultipleObjects+0x14   0x94defdd9c8   0x7ffb9cfdaf90   
[0x1]   KERNELBASE!WaitForMultipleObjectsEx+0xf0   0x94defdd9d0   0x7ffb9cfdae8e   
[0x2]   KERNELBASE!WaitForMultipleObjects+0xe   0x94defddcc0   0x7ffb4041b452   
[0x3]   UnityPlayer!winutils::ExternalCrashHandler::HandleCrash+0x242   0x94defddd00   0x7ffb4041b4e2   
[0x4]   UnityPlayer!winutils::ExternalCrashHandler::HandleCrash+0x22   0x94defdddb0   0x7ffb4042c398   
[0x5]   UnityPlayer!winutils::CrashHandler::HandleCrash+0x30   0x94defdde00   0x7ffb9d0ae197   
[0x6]   UnityPlayer!winutils::ProcessInternalCrash+0x118   0x94defdde00   0x7ffb9d0ae197   
[0x7]   KERNELBASE!UnhandledExceptionFilter+0x1e7   0x94defdde30   0x7ffb9f6354b0   
[0x8]   ntdll!RtlUserThreadStart$filt$0+0xa2   0x94defddf50   0x7ffb9f61ca06   
[0x9]   ntdll!_C_specific_handler+0x96   0x94defddf90   0x7ffb9f6323af   
[0xa]   ntdll!RtlpExecuteHandlerForException+0xf   0x94defde000   0x7ffb9f5e14b4   
[0xb]   ntdll!RtlDispatchException+0x244   0x94defde030   0x7ffb9f630ebe   
[0xc]   ntdll!KiUserExceptionDispatch+0x2e   0x94defde740   0x7ffb45569812   
[0xd]   EOSSDK_Win64_Shipping!EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer+0x42   0x94defdeec0   0x7ffb94888c4d   
[0xe]   GfxPluginNativeRender_x64!global_log_flush_with_function+0x3e8d   0x94defdef00   0x7ffb9488a0f1   
[0xf]   GfxPluginNativeRender_x64!UnityPluginLoad+0x1101   0x94defdf330   0x7ffb400b3b3f   
[0x10]   UnityPlayer!RegisterPlugin+0x15f   0x94defdf7f0   0x7ffb400b1bbc   
[0x11]   UnityPlayer!InitializePlugin+0xac   0x94defdf870   0x7ffb400b36d6   
[0x12]   UnityPlayer!FindAndLoadUnityPlugin+0x1dc   0x94defdf870   0x7ffb400b36d6   
[0x13]   UnityPlayer!PluginsInitializePreloadedPlugins+0x46   0x94defdf910   0x7ffb3fed7399   
[0x14]   UnityPlayer!CallbackInfoBase<void (__cdecl*)(void),void (__cdecl*)(void const *)>::Invoke+0x8   0x94defdf940   0x7ffb400bc8ec   
[0x15]   UnityPlayer!CallbackArray::Invoke+0x39   0x94defdf940   0x7ffb400bc8ec   
[0x16]   UnityPlayer!PlayerInitEngineNoGraphics+0x2fc   0x94defdf970   0x7ffb402a6210   
[0x17]   UnityPlayer!UnityMainImpl+0x6a0   0x94defdfa20   0x7ffb402a87eb   
[0x18]   UnityPlayer!UnityMain+0xb   0x94defefc90   0x7ff778a911f2   
[0x19]   MyGame!invoke_main+0x21   0x94defefcc0   0x7ffb9d877344   
[0x1a]   MyGame!__scrt_common_main_seh+0x106   0x94defefcc0   0x7ffb9d877344   
[0x1b]   kernel32!BaseThreadInitThunk+0x14   0x94defefd00   0x7ffb9f5e26b1   
[0x1c]   ntdll!RtlUserThreadStart+0x21   0x94defefd30   0x0   

PetrBodnar avatar May 14 '24 14:05 PetrBodnar

Hi, we haven't fully tested using EAC without the Bootstrapper, so it is possible that it may cause problems. However this IntegratedPlatformOptions does look a little weird, because it doesn't seem to exist on Windows in previous versions. In the meantime, try using EOSBootstrapper if it solves the ploblem, we will check if there is something wrong related to IntegratedPlatformOptions

arthur740212 avatar May 14 '24 21:05 arthur740212

Thank you, I will try to use EOSBootstrapper UPDATE: We temporarily have problems with our CI, when we will fix it we will try to use EOSBootstrapper

By the way, may the problem be related to problem addressed by PR https://github.com/PlayEveryWare/eos_plugin_for_unity/pull/673 ? I see that there are some changes related to EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly in this PR. I'm not sure that EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly affects original problem in current issue, but it looks suspicious (I may be wrong).

PetrBodnar avatar May 15 '24 05:05 PetrBodnar

Thank you, I will try to use EOSBootstrapper UPDATE: We temporarily have problems with our CI, when we will fix it we will try to use EOSBootstrapper

By the way, may the problem be related to problem addressed by PR #673 ? I see that there are some changes related to EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly in this PR. I'm not sure that EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly affects original problem in current issue, but it looks suspicious (I may be wrong).

PR #673 affects this neither directly nor indirectly (at least as far as I can tell). That PR primarily addresses issues related to building from one platform to another, but from the information you provided you are building on Windows and targeting the Windows platform, so that process should not intersect with the fixes in that PR. Additionally: Usage of EOS_DYNAMIC_BINDINGS was restored per feedback on the PR, and the AlwaysLinkAssembly attribute behaves the same as it did before.

Looking forward to hearing what you learn after your CI issues are resolved.

paulhazen avatar May 15 '24 15:05 paulhazen

We fixed our CI and checked with EOSBootstrapper - same result (same crash)

PetrBodnar avatar May 16 '24 12:05 PetrBodnar

I will try to reproduce on empty project

PetrBodnar avatar May 17 '24 05:05 PetrBodnar

I reproduced this issue on empty project.

PetrBodnar avatar May 17 '24 07:05 PetrBodnar

I found that that we not set Product Version nor Use Unity App Version for Product Version fields. When I set Product Version problem has gone, at least on empty project. Now I'm building main project with Use Unity App Version for Product Version set to true. We expect that this will fix the problem for main project, too.

PetrBodnar avatar May 17 '24 09:05 PetrBodnar

Setting the Product Version fixed problem for main project, too. It would be cool if EOS/Plugin Settings editors in Unity will validate and warn user if not Product Version nor "Use Unity App Version.." are set. Or maybe show some error in runtime when version is not set.

PetrBodnar avatar May 17 '24 10:05 PetrBodnar

Setting the Product Version fixed problem for main project, too. It would be cool if EOS/Plugin Settings editors in Unity will validate and warn user if not Product Version nor "Use Unity App Version.." are set. Or maybe show some error in runtime when version is not set.

This is excellent feedback. We will incorporate changes that make configurations errors clearer to diagnose. I really appreciate you following through with all this information - super helpful @PetrBodnar - and apologies we were not able to more immediately identify the source of the problem for you.

paulhazen avatar May 24 '24 21:05 paulhazen