inkle / ink-unity-integration

Unity integration for the open source ink narrative scripting language.
http://www.inklestudios.com/ink
Other
581 stars 101 forks source link

Batch recompile times out on every other Ink file #145

Closed dcastalia-personal closed 3 years ago

dcastalia-personal commented 3 years ago

After updating a project to Unity 2020.2.0f1 and Ink Unity Integration 0.9.61 (UPM), the Ink compiler exhibits odd behavior: when Assets > Recompile Ink is performed, every other Ink file times out with the following error:

Ink Compiler timed out for /Users/MyUserName/MyProjectPath/Assets/Adam Applebaum.ink.
Compilation should never take more than a few seconds, but for large projects or slow computers you may want to increase the timeout time in the InkSettings file.
If this persists there may be another issue; or else check an ink file exists at this path and try Assets/Recompile Ink, else please report as a bug with the following error log at this address: https://github.com/inkle/ink/issues
Error log:

UnityEngine.Debug:LogError (object)
Ink.UnityIntegration.InkCompiler:Update () (at Library/PackageCache/com.inklestudios.ink-unity-integration@0.9.61/Editor/Core/Compiler/InkCompiler.cs:112)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions () (at /Users/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:327)

After waiting for each timeout, the completion log is printed to the console and reports that the other half of the files were successfully compiled.

I can compile one file at a time just fine. It's only when I have to compile more than one at once that this happens.

tomkail commented 3 years ago

Ooh that’s a new one. If you can, please try the development branch and see if it fixes your issue - otherwise if you’re able to send me your ink I’ll have a look at it.

On Thu, 17 Dec 2020 at 05:06, dcastalia-personal notifications@github.com wrote:

After updating a project to Unity 2020.2.0f1 and Ink Unity Integration 0.9.61 (UPM), the Ink compiler exhibits odd behavior: when Assets > Recompile Ink is performed, every other Ink file times out with the following error:

Ink Compiler timed out for /Users/MyUserName/MyProjectPath/Assets/Adam Applebaum.ink. Compilation should never take more than a few seconds, but for large projects or slow computers you may want to increase the timeout time in the InkSettings file. If this persists there may be another issue; or else check an ink file exists at this path and try Assets/Recompile Ink, else please report as a bug with the following error log at this address: https://github.com/inkle/ink/issues Error log:

UnityEngine.Debug:LogError (object) Ink.UnityIntegration.InkCompiler:Update () (at Library/PackageCache/com.inklestudios.ink-unity-integration@0.9.61/Editor/Core/Compiler/InkCompiler.cs:112) UnityEditor.EditorApplication:Internal_CallUpdateFunctions () (at /Users/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:327)

After waiting for each timeout, the completion log is printed to the console, and reports that the other half of the files were successfully compiled.

I can compile one file at a time just fine. It's only when I have to compile more than one at once that this happens.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/inkle/ink-unity-integration/issues/145, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJR3UABAOPQXPXUR6H3M43SVGGVFANCNFSM4U7AZ4CQ .

dcastalia-personal commented 3 years ago

Thanks, Tom! I reproduced it in the development version of Ink in an empty Unity project with empty Ink files, which you can DL here https://www.dropbox.com/s/djrnrvqr539l9cr/Ink%20Compile%20Timeout.zip?dl=0.

The only step to reproduce is to open the project in Unity 2020.2.0f1 and choose Assets > Recompile Ink.

On Dec 17, 2020, at 12:51 AM, Tom Kail notifications@github.com wrote:

Ooh that’s a new one. If you can, please try the development branch and see if it fixes your issue - otherwise if you’re able to send me your ink I’ll have a look at it.

On Thu, 17 Dec 2020 at 05:06, dcastalia-personal notifications@github.com wrote:

After updating a project to Unity 2020.2.0f1 and Ink Unity Integration 0.9.61 (UPM), the Ink compiler exhibits odd behavior: when Assets > Recompile Ink is performed, every other Ink file times out with the following error:

Ink Compiler timed out for /Users/MyUserName/MyProjectPath/Assets/Adam Applebaum.ink. Compilation should never take more than a few seconds, but for large projects or slow computers you may want to increase the timeout time in the InkSettings file. If this persists there may be another issue; or else check an ink file exists at this path and try Assets/Recompile Ink, else please report as a bug with the following error log at this address: https://github.com/inkle/ink/issues Error log:

UnityEngine.Debug:LogError (object) Ink.UnityIntegration.InkCompiler:Update () (at Library/PackageCache/com.inklestudios.ink-unity-integration@0.9.61/Editor/Core/Compiler/InkCompiler.cs:112) UnityEditor.EditorApplication:Internal_CallUpdateFunctions () (at /Users/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:327)

After waiting for each timeout, the completion log is printed to the console, and reports that the other half of the files were successfully compiled.

I can compile one file at a time just fine. It's only when I have to compile more than one at once that this happens.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/inkle/ink-unity-integration/issues/145, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJR3UABAOPQXPXUR6H3M43SVGGVFANCNFSM4U7AZ4CQ .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/inkle/ink-unity-integration/issues/145#issuecomment-747274573, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACDKTMWGQB4A3ONF5XTWPZ3SVG2ALANCNFSM4U7AZ4CQ.

klootas commented 3 years ago

I'm having the same issue in Unity 2020.2. Tricky though, coz I was able to do a day's work before it all collapsed.

Here's a hint: It seems that in order for a compilation to complete, it first has to show the "Ink Compiler timed out..." message. After that some kind of lock is released allowing the files to compile. So to combat it for now I set a super short ink Compile Timeout setting :P

I'm also getting the dreaded "Assertion failed on expression: 'm_DisallowAutoRefresh >= 0'" error, but maybe that's a side effect of not being able to compile.

I'm also getting this error (no stack trace though, so it's hard to say if this is ink related at all): ReleaseAllScriptCaches did not release all script caches!

tomkail commented 3 years ago

Replicated with 0.9.61, but fortunately this seems resolved with 0.9.7 (latest on development branch). Can I suggest you move over to that version and let me know how you get on? I'd like to push it to master but I wouldn't mind a bit more testing first - do let me know if you have issues!

There's a fix for the DisallowAutoRefresh bug in there too, although that one is a bit trickier to work out so I can't promise it'll resolve it!

EDIT: Weirdly seems broken again on 2020.2! I'm going to have a look.

tomkail commented 3 years ago

I have a fix for both issues - will push to the development branch tomorrow.

On Thu, 17 Dec 2020 at 18:59, Pontus Wittenmark notifications@github.com wrote:

I'm having the same issue in Unity 2020.2. I'm also getting the dreaded "Assertion failed on expression: 'm_DisallowAutoRefresh >= 0'" error, but maybe that's a side effect of not being able to compile.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/inkle/ink-unity-integration/issues/145#issuecomment-747633954, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJR3UBJXUE5DYNEPPOW5VDSVJIHLANCNFSM4U7AZ4CQ .

tomkail commented 3 years ago

Pushed to dev! Please test and let me know :)

dcastalia-personal commented 3 years ago

Testing the latest commit in dev (77cafeca0b6b9e3d83724bfbaa0a7537aba70323), I'm now seeing Recompile All start and never complete. So there's no timeout anymore after x seconds.

I've updated the repro link above with a version of the project on the latest version.

tomkail commented 3 years ago

Right! Try again :)

dcastalia-personal commented 3 years ago

Latest fixes the issue for me. Thank you!