Jump to content

KSP stops a quarter of the way through the loading bar and than crashes, what mod(s) are causing this?


Recommended Posts

Lots of MissingMethod and NullRef exceptions by KSPe, KSP Recall during part compilation. Some ModuleManagerWatchdog messages to boot. Hmm. Paging Doctor @Lisias
It could be crashing because of some incompatible mod but I don't really see anything among all the errors :) (The usual culprits are all present, though, like Firespitter)

I suppose those part compilation errors lead to all the null references later on where drag cubes seem to be missing.

 

Link to comment
Share on other sites

6 hours ago, HansAcker said:

Lots of MissingMethod and NullRef exceptions by KSPe, KSP Recall during part compilation. Some ModuleManagerWatchdog messages to boot. Hmm. Paging Doctor @Lisias
It could be crashing because of some incompatible mod but I don't really see anything among all the errors :) (The usual culprits are all present, though, like Firespitter)

I suppose those part compilation errors lead to all the null references later on where drag cubes seem to be missing.

Nope. KSPe is not installed.

What we have on his GameData are the specialised Light version used by DOE, Recall and TweakScale - and they are not throwing exceptions.

 

On 2/12/2023 at 5:30 PM, Rocket Science42 said:

Curiously, I found this:

[LOG 14:54:03.858] [CompatibilityChecker] Running checker version 5 from 'MechJeb2'
[EXC 14:54:03.861] MissingMethodException: bool ModuleManagerWatchDog.SanityLib.IsEnforceable(int,int)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:54:03.862] MissingMethodException: bool ModuleManagerWatchDog.SanityLib.IsEnforceable(int,int)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 14:54:03.862] [WatchDog.InstallChecker] Version 1.1.0.3 /L

It's curious, but apparently something is screwing with MMWD DLLs. MMWD does not use KSPe, being the Light or not, so KSPe is not a variable on this one. So this is something else triggering that Kraken damned KSP bug on the Assembly Loader/Resolver thingy.

Then I found this:

[EXC 15:09:19.206] MissingMethodException: KSPe.Util.Log.Logger KSPe.Util.Log.Logger.CreateForType<!0>(string,string,int)
        Rethrow as TypeInitializationException: The type initializer for 'KSP_Recall.AttachedOnEditor.AttachedOnEditor' threw an exception.
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.GameObject:AddComponent(Type)

Suggesting that KSP-Recall is not being able to find it's specialised version of KSPe.Light.  However, it was found on your rig:

[LOG 14:54:02.325] [KSPe.Light.KSP-Recall] Version 2.3.0.4 /L
<...>
[LOG 14:54:02.328] [KSP_Recall] Version 0.2.0.6 /L running on KSP 1.12.5

HOWEVER… Somehow you have a VERY OLD Version of KSP-Recall installed on your machine! This release if from more than 18 months ago, a really huge amount of time given the number of bug fixes I did on the newer versions!

The following is the logs I have from my Reference KSP installagion:

[LOG 12:10:34.512] [KSPe.Light.Recall] Version 2.4.3.0 /L for KSP-Recall
[LOG 12:10:34.521] [KSP-Recall] Version 0.3.0.9 /L running on KSP 1.12.5

This is reason enough to stop the diagnosing and suggest you to completely remove the KSP-Recall and reinstall it using the latest version found on CurseForge or SpaceDock. It's since Dec 2021 (when I launched Recall V0.2.1.3) that I don't even fire this old 0.2.0.6 release!!!

@Rocket Science42, please update KSP-Recall to the latest version and then try again. If things still get screwed, publish a new KSP.log and I will keep digging.

Additionally, you are also using a very old release of TweakScale too!:

[LOG 14:54:08.266] [TweakScale] Version 2.4.6.2 /L

And Kraken knows how many mistakes and bugs I had fixed on TweakScale since Oct 2021, when I launched this version! I never fired it again since Nov 2021 when I released a new one.

@Rocket Science42, again, please install the latest TweakScale from CurseForge or SpaceDock.

And, now, a somewhat serious warning. You are using the latest KSP:

[LOG 14:50:53.555] ******* Log Initiated for Kerbal Space Program - 1.12.5.3190 (WindowsPlayer x64) en-us *******
Kerbal Space Program - 1.12.5.3190 (WindowsPlayer x64) en-us

So there's absolutely no reason for you be using so older versions of KSP Recall and TweakScale. I go trough huge pains to make the newer releases compatible to any KSP version since at least 1.4.3 (some few add'ons of mine can be used downto 1.3.1!!!), so you can always be using the latest releases with the latest features and bug fixes no matter the KSP version you are using.

But I don't test older releases of my add'ons on newer KSP ones!

I don't know why you decided to install so older versions of these Add'Ons (and, frankly, perhaps it's better not to know after all), but I strongly suggest you don't do it anymore.

Now and then I made a mistake, I know. But I had always fixed the real bad ones in a matter of days once they are detected, and it's some time since a healthy KSP installation had suffered due one of them. The latest major screw up of mine was on a code that was trying to survived royally screwed up KSP installations with multiple bad patching problems on it - people that keeps their GameData sane didn't noticed the problem!

Anyway. Please update your KSP-Recall and TweakScale to the latest versions and try again. If anything bad keeps happening, publish a new KSP.log and I will dig on it,

Edited by Lisias
Diagnosing the right problem this time.
Link to comment
Share on other sites

2 hours ago, Lisias said:

Nope. KSPe is not installed.

What we have on his GameData are the specialised Light version used by DOE, Recall and TweakScale - and they are not throwing exceptions.

 

Curiously, I found this:

[LOG 14:54:03.858] [CompatibilityChecker] Running checker version 5 from 'MechJeb2'
[EXC 14:54:03.861] MissingMethodException: bool ModuleManagerWatchDog.SanityLib.IsEnforceable(int,int)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 14:54:03.862] MissingMethodException: bool ModuleManagerWatchDog.SanityLib.IsEnforceable(int,int)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 14:54:03.862] [WatchDog.InstallChecker] Version 1.1.0.3 /L

It's curious, but apparently something is screwing with MMWD DLLs. MMWD does not use KSPe, being the Light or not, so KSPe is not a variable on this one. So this is something else triggering that Kraken damned KSP bug on the Assembly Loader/Resolver thingy.

Then I found this:

[EXC 15:09:19.206] MissingMethodException: KSPe.Util.Log.Logger KSPe.Util.Log.Logger.CreateForType<!0>(string,string,int)
        Rethrow as TypeInitializationException: The type initializer for 'KSP_Recall.AttachedOnEditor.AttachedOnEditor' threw an exception.
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.GameObject:AddComponent(Type)

Suggesting that KSP-Recall is not being able to find it's specialised version of KSPe.Light.  However, it was found on your rig:

[LOG 14:54:02.325] [KSPe.Light.KSP-Recall] Version 2.3.0.4 /L
<...>
[LOG 14:54:02.328] [KSP_Recall] Version 0.2.0.6 /L running on KSP 1.12.5

HOWEVER… Somehow you have a VERY OLD Version of KSP-Recall installed on your machine! This release if from more than 18 months ago, a really huge amount of time given the number of bug fixes I did on the newer versions!

The following is the logs I have from my Reference KSP installagion:

[LOG 12:10:34.512] [KSPe.Light.Recall] Version 2.4.3.0 /L for KSP-Recall
[LOG 12:10:34.521] [KSP-Recall] Version 0.3.0.9 /L running on KSP 1.12.5

This is reason enough to stop the diagnosing and suggest you to completely remove the KSP-Recall and reinstall it using the latest version found on CurseForge or SpaceDock. It's since Dec 2021 (when I launched Recall V0.2.1.3) that I don't even fire this old 0.2.0.6 release!!!

@Rocket Science42, please update KSP-Recall to the latest version and then try again. If things still gets screwed, publish a new KSP.log and I will keep digging.

Additionally, you are also using a very old release of TweakScale too!:

[LOG 14:54:08.266] [TweakScale] Version 2.4.6.2 /L

And Kraken knows how many mistakes and bugs I had fixed on TweakScale since Oct 2021, when I launched this version! I never fired it again since Nov 2021 when I released a new one.

@Rocket Science42, again, please install the latest TweakScale from CurseForge or SpaceDock.

And, now, a somewhat serious warning. You are using the latest KSP:

[LOG 14:50:53.555] ******* Log Initiated for Kerbal Space Program - 1.12.5.3190 (WindowsPlayer x64) en-us *******
Kerbal Space Program - 1.12.5.3190 (WindowsPlayer x64) en-us

So there's absolutely no reason for you be using so older versions of KSP Recall and TweakScale. I go trough huge pains to make the newer releases compatible to any KSP version since at least 1.4.3 (some few add'ons of mine can be used downto 1.3.1!!!), so you can always be using the latest releases with the latest features and bug fixes no matter the KSP version you are using.

But I don't test older releases of my add'ons on newer KSP ones!

I don't know why you decided to install so older versions of these Add'Ons (and, frankly, perhaps it's better not to know after all), but I strongly suggest you don't do it anymore.

Now and then I made a mistake, I know. But I had always fixed the real bad ones in a matter of days once they are detected, and it's some time since a healthy KSP installation had suffered com one of them. The latest major screw up of mine was on a code that was trying to survived royally screwed up KSP installations with multiple bad patching problems on it - people that keeps their GameData sane didn't noticed the problem!

Anyway. Please update your KSP-Recall and TweakScale to the latest versions and try again. If anything bad keeps happening, publish a new KSP.log and I will dig on it,

thanks for helping me, my game is now loading. 

thank you for finding the issue with my game.

Link to comment
Share on other sites

On 2/17/2023 at 7:56 PM, HansAcker said:

Lots of MissingMethod and NullRef exceptions by KSPe, KSP Recall during part compilation. Some ModuleManagerWatchdog messages to boot. Hmm. Paging Doctor @Lisias

The weird thing about this Assembly Loader/Resolver problem is that everybody and the kitchen's sink get royally screwed once it is triggered by someone. On saner systems, only the thingy that failed being loaded would had problems, but due this KSP's bug, once the first DLL fails to be loaded, everybody else in need of loading another DLL or to use another thingy called Reflection will be screwed by the problem.

So it's not obvious what's cause and what's effect on this one - not to mention splash damage.

Empirically, I had found that the first occurrence of a DLL loading error would pinpoint the cause of the problem, but when MJ2 is installed, the order of the log is messed (something about MJ2 doing it's own sanity checks, changing the chain of events - not a problem, just a different way of doing some things), and so it's yet more harsh to diagnose the problem!

Well, now let's talk about this problem. :) 

KSPe.Light is the lightweight, "retargetable" version of KSPe. I did this way because KSPe's API was not stable at that time, but yet had a lot of features that made my life easier so embedding a custom version of it on Recall (and others) make sense - I can develop KSPe outside the development cycle of Recall et all, so I don't risk screwing up someone else's life due an ABI breakage (that happens every minor version change - i.e., 2.2 to 2.3, from 2.3 to 2.4, and now with KSP 2.4 to 2.5). The side effect of it is that is not uncommon that Recall (et all) gets tied to a specific version of KSPe.Light.<something>. What's should not be a problem, because each Release of Recall (et all) come with it embedded, and all of them works on almost all KSP releases, so the user is never locked out of the bug fixing cycle no matter the KSP he's playing on (with a few exceptions, of course).

Things got royally screwed on the user's machine because somehow KSPe.Light.Recall v2.3.0.4 was installed with KSP Recall v0.2.0.6 . But it happens that on Recall v0.2.0.6 I used the KSPe.Light.Recall v2.4.0.0, not this older one! And do you remember that I break ABI (Application Binary Interface) when I raise the minor version of KSPe? (i remove deprecated things marked to be removed since 2 or 3 minors before, usually - on 2.4 I removed a lot of bad ideas from the 2.2 era that was hindering further development).

So now we have the reason for the breakage - an older KSP-Recall was installed, but somehow with an even older KSPe.Light.Recall for it where an ABI call was different from the one Recall was compiled against. So we had a Dynamic Linking error, that it's a kind of Reflection Error that triggers the Assembly Loader/Resolver bug on KSP, that so starts to screw up the life of everybody else.

 

On 2/17/2023 at 7:56 PM, HansAcker said:

(The usual culprits are all present, though, like Firespitter)

Firespitter is only a problem when the TweakScale Companion for Firespitter is not installed. I'm trying to find time to write a "Sanity Check" on TweakScale to recommend installing Companions as needed - but, boy, I just can't win an argument with Real Life™. :/ 

So, at this time, the TweakScale Companion ÜberPaket is almost a hard dependency for people not playing Stock. Good thing I had wrote conditional DLL loading tools on KSPe, so you can install a "hard" Companion (one that needs a dedicated DLL compiled against the targer add'on) on a rig without the target installed without risking getting screwed by the Assembly Loader/Resolver.

Well… "vida que segue" (life goes on).

Cheers!

— — — English Translation of some terms — — — 

  • API
    • Application Programming Interface
    • A kind of "contract" where two different codes from two different sources agree in order to reuse each other's assets.
    • Source Code level
  • ABI
    • Application Binary Interface
    • It's the same contract, but on the binary level after compilation.
    • It's related, but doesn't matches exactly the API used to generate it,

Depending in how you compile something (and in which language), one API can generate different ABIs.

Most of the time, as your libraries evolve, you want to keep the ABI intact to prevent a recompile fest on the field - what creates drag on the adoption of the newer versions.

API changes are usually better tolerated if done on the long term (i.e., first you mark something as deprecated, then you pesky everybody for some versions about how that thingy is going to be removed futurelly, and then you remove the thing).

But sometimes you draw yourself to a corner with C# - there're so many different ways to define a call, and because of it sometimes you just can't keep ABI compatibility while changing an API. It was was happened on KSPe 2.3, a bunch of bad ideas were preventing me from fixing some API calls to something saner due ABI conflicts.

Edited by Lisias
some bad grammars...
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...