EasySave3 Crash On ES3.Load

Discussion and help for Easy Save 3
Post Reply
BornInABottle
Posts: 2
Joined: Thu Aug 20, 2020 9:38 pm

EasySave3 Crash On ES3.Load

Post by BornInABottle »

EasySave3 (latest version) crashes a Windows Unity build whenever it tries to load data.

I have 2 Steam builds for my Unity game (with 2 separate Steam app IDs - one for release, and one app for pre-release alpha version). I accidentally pushed a build to the alpha app using the name of the main app in Unity build settings, and ever since EasySave3 crashes either build when ES3.Load is called.

I have fixed the naming issue so they are two separate programs in my Steam library, however I believe the reference EasySave is using for the save file is causing the crash. I have deleted the SaveFile.es3 in AppData for both apps, but that didn't fix it.

I have narrowed it down to the ES3.Load function - the game can save as normal, however can't load that saved data without crashing the Unity build.

There are no EasySave logs in the Player Log or Crash Log.

Any suggestions?
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: EasySave3 Crash On ES3.Load

Post by Joel »

Hi there, and thanks for getting in contact.

If Easy Save encounters an issue it will log an exception to console, and unfortunately it wouldn't be possible for me to understand what is happening without seeing this.

I would first check that Log Errors and Log Warnings is checked in Window > Easy Save 3 > Settings, and that 'Script call optimization' in Unity's build settings is not set to 'Fast but no exceptions'.

Also consider that in the process of loading data, you are creating and assigning to objects which could also themselves throw an error, so it might be worth looking into that when debugging your project.
I have fixed the naming issue so they are two separate programs in my Steam library, however I believe the reference EasySave is using for the save file is causing the crash. I have deleted the SaveFile.es3 in AppData for both apps, but that didn't fix it.
By default Easy Save stores data in Unity's Application.persistentDataPath, so the save path isn't controlled at our end. You can find more information on Application.persistentDataPath here: https://docs.unity3d.com/ScriptReferenc ... aPath.html

Hope this helps.

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
BornInABottle
Posts: 2
Joined: Thu Aug 20, 2020 9:38 pm

Re: EasySave3 Crash On ES3.Load

Post by BornInABottle »

Hi Joel,

Thanks for coming back to me so quickly. Log Errors and Log Warnings are both enabled in EasySave, but there are no ES3 related warnings in the player log or crash log.

I dug into Unity's crash log, and it seems ES3.Load is causing an access violation (log below). ES3.Save can save a file to the correct location in the persistent data path (I checked and the SaveFile.es3 file appears when saving), but when it tries to load from that file the below crash occurs.

Searching online it seems that this might be an issue with Citrix (which I don't have), or the computer's Registry (more likely, having installed 2 apps in the same location). I deleted the registry folder for the game, but am still experiencing the EasySave crash. Could it be something else?

Does this help troubleshoot at all?

Code: Select all

This Means Warp Alpha by Outlier [version: Unity 2019.3.14f1_2b330bf6d2d8]

UnityPlayer.dll caused an Access Violation (0xc0000005)
  in module UnityPlayer.dll at 0033:3eb4b430.

Error occurred at 2020-08-21_084934.
C:\Users\paulm\Desktop\Steam SDK (Alpha)\sdk\tools\ContentBuilder\content\This Means Warp Alpha.exe, run by paulm.

Read from location 0000000000000000 caused an access violation.

Context:
RDI:    0x0000000000000000  RSI: 0x0000023a80220b80  RAX:   0x0000023a400c60bc
RBX:    0x000000d0d4f0e180  RCX: 0x0000000000000000  RDX:   0x000000d0d4f0e120
RIP:    0x00007ffd3eb4b430  RBP: 0x000000d0d4f0e190  SegCs: 0x000000d000000033
EFlags: 0x0000000000010246  RSP: 0x000000d0d4f0e090  SegSs: 0x000000d00000002b
R8:     0x00007ffd3fb713e0  R9:  0x000001696b1b7fe4  R10:   0x0000000000000000
R11:    0x000000d0d4f0e088  R12: 0x0000000000000000  R13:   0x0000023a80220810
R14:    0x0000023a80220730  R15: 0x0000023a80220730


Bytes at CS:EIP:
48 8b 01 ff 50 40 8b 55 94 48 8b ce e8 ff d0 ff 

Mono DLL loaded successfully at 'C:\Users\paulm\Desktop\Steam SDK (Alpha)\sdk\tools\ContentBuilder\content\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll'.


Stack Trace of Crashed Thread 17192:
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB4B430)
0x00007FFD3EB4B430 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB5F308)
0x00007FFD3EB5F308 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB4D9FB)
0x00007FFD3EB4D9FB (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBFCE25)
0x00007FFD3EBFCE25 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03B2D)
0x00007FFD3EC03B2D (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03C08)
0x00007FFD3EC03C08 (UnityPlayer) (function-name not available)
0x00007FFD3EF24668 (UnityPlayer) UnityMain
0x00007FFDB0117BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFDB112CE51 (ntdll) RtlUserThreadStart

Stacks for Running Threads:

Call Stack for Thread 15580:
0x00007FFDB115C0F4 (ntdll) NtWaitForSingleObject
0x00007FFDAECD8A83 (KERNELBASE) WaitForSingleObjectEx
0x00007FFD3F57C3E2 (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03EE7)
0x00007FFD3EC03EE7 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBF635D)
0x00007FFD3EBF635D (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBE0313)
0x00007FFD3EBE0313 (UnityPlayer) (function-name not available)
0x00007FFD3EE8BAA2 (UnityPlayer) UnityMain
0x00007FFD3EE7D427 (UnityPlayer) UnityMain
0x00007FFD3EE7D4C3 (UnityPlayer) UnityMain
0x00007FFD3EE7F8C3 (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC38FFE)
0x00007FFD3EC38FFE (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC37D5A)
0x00007FFD3EC37D5A (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC3BCCC)
0x00007FFD3EC3BCCC (UnityPlayer) (function-name not available)
0x00007FFD3EC3F7BB (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FF7DAD611F2)
0x00007FF7DAD611F2 (This Means Warp Alpha) (function-name not available)
0x00007FFDB0117BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFDB112CE51 (ntdll) RtlUserThreadStart
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: EasySave3 Crash On ES3.Load

Post by Joel »

Hi there,

This looks to be an internal Unity crash happening in unmanaged space rather than at our end, so it might be worth getting in touch with them as only they're able to debug internal crashes.

Just to check, are you using multiple threads at all? It may be that thread safety is being violated.

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
Post Reply