sarbian/ModularFlightIntegrator

@Lisias: MFI 1.2.4.10 creates NRE spam - also rls MFI 1.2.5.0 does it

Closed this issue · 13 comments

@Lisias
Using
https://github.com/net-lisias-kspu/ModularFlightIntegrator/releases/tag/RELEASE%2F1.2.4.10

I had several occasions without issues, but then it happened.
A sounding rocket was stuck on the launch clamp.

The log was spammed with

TimingFI threw during FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at ModularFI.ModularFlightIntegrator.TimedFixedUpdate () [0x00000] in <filename unknown>:0 
  at TimingFI.FixedUpdate () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

and then with

TimingFI threw during FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at ModularFI.ModularFlightIntegrator.TimedFixedUpdate () [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) Callback:invoke_void__this__ ()
  at (wrapper delegate-invoke) Callback:invoke_void__this__ ()
  at TimingFI.FixedUpdate () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

TimingFI threw during Update: System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
  at System.Collections.Generic.List`1[OcclusionData].get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at FlightIntegrator.UpdateOcclusionSolar () [0x00000] in <filename unknown>:0 
  at FlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0 
  at ModularFI.ModularFlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0 
  at FlightIntegrator.Update () [0x00000] in <filename unknown>:0 
  at ModularFI.ModularFlightIntegrator.TimedUpdate () [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) Callback:invoke_void__this__ ()
  at (wrapper delegate-invoke) Callback:invoke_void__this__ ()
  at TimingFI.Update () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

The full log and stuff:
https://www.dropbox.com/s/ywo6jzch15tbjob/2018-10-11_1%20KSP.log%20and%20stuff.7z?dl=1

I post it here because @Lisias got no "issues" unlocked to post in at the fork.

@sarbian @Lisias Now I also have the same issue with MFI 1.2.5.0 rls

It only occurs when:

  1. battery empty
  2. RT connection lost (the transmission of science data still continues, wtf?)
  3. the vessel continues to climb with the same speed as before, so the apoapsis still climbs
  4. the log is spammed with:
TimingFI threw during FixedUpdate: System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
  at System.Collections.Generic.List`1[OcclusionData].get_Item (Int32 index) [0x00000] in <filename unknown>:0 
  at FlightIntegrator.UpdateOcclusionSolar () [0x00000] in <filename unknown>:0 
  at FlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0 
  at ModularFI.ModularFlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0 
  at FlightIntegrator.FixedUpdate () [0x00000] in <filename unknown>:0 
  at ModularFI.ModularFlightIntegrator.TimedFixedUpdate () [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) Callback:invoke_void__this__ ()
  at TimingFI.FixedUpdate () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Full log and stuff:
https://www.dropbox.com/s/2cqpq61xmbc7vym/2018-10-11_2%20KSP.log%20and%20stuff.7z?dl=1

All right, you won. I will enable issue tracking on everything. :)

In the mean time, get the newest MM/L and the newest KSPe/L. The ones you have still have a horrible mess-up I did last week...

ok, these ones are my fault. I'm fixing and updating the fork. It's a mess I did (coding late time is terrible).

[ERR 05:26:21.427] TimingFI threw during FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at ModularFI.ModularFlightIntegrator.TimedFixedUpdate () [0x00000] in <filename unknown>:0

These other ones are a problem on another mod, that happens to insert a callback into MFI, and when the thing blows, MFI is the one screaming. It's not MFI related, this guy is just a proxy.

[ERR 05:26:21.412] TimingFI threw during Update: System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
  at System.Collections.Generic.List`1[OcclusionData].get_Item (Int32 index) [0x00000] in <filename unknown>:0
  at FlightIntegrator.UpdateOcclusionSolar () [0x00000] in <filename unknown>:0
  at FlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0
  at ModularFI.ModularFlightIntegrator.UpdateOcclusion (Boolean all) [0x00000] in <filename unknown>:0
  at FlightIntegrator.Update () [0x00000] in <filename unknown>:0
  at ModularFI.ModularFlightIntegrator.TimedUpdate () [0x00000] in <filename unknown>:0

I would recomend closing this as "CLOSED/NOT-MY-PROBLEM" . :)

@Gordon-Dry , I'm issuing a new release on my fork in the next few hours.

So @Lisias you are distributing an other version of MFI ? Why did I not hear about this before and why do I end up with issue here ? Do the big mods that depends on MFI (FAR and Kopernicus) know about this ?
People used to at least mention it before forking and distributing the fork...

Because I'm not distributing. I'm doing for myself, to be used on my installments.

You will not find any mention of it on Forum. So, I don't feel the need to asking for blessing for doing my private business.

@Lisias @sarbian I didn't want to trigger misunderstandings, sorry

Well, the issue ended up here so I fell quite right to be annoyed.

I concur, is the issue in question even POSSIBLE on the main branch of MFI? If not (and it IS not, isn't it) and you couldn't create an issue on the appropriate branch then you @Gordon-Dry should have messaged @Lisias directly.

As I mentioned here:
#9 (comment)

I also got it with the main rls 1.2.5.0

@Gordon-Dry still not seeing this as a Modular Flight Integrator issue. MFI allows other mods to modularly replace various function calls in the stock Flight Integrator. THAT'S ALL.

It is entirely possible for one of those mods to manipulate data in ways that can cause errors. The actual error is NOT in MFI and that it happens when MFI is installed means (worst case scenario) that someone else is using it to replace function calls and manipulate data and they are the ones causing the issue.

The error you cited is actually happening in the stock code UpdateOcclusionSolar when it tries to operate on an OcclusionData list. None of the relevant data are EVER directly touched by MFI and it is not our responsibility to police what other people do to the FlightIntegrator by using MFI.

ESPECIALLY NOT EVER.

Thank you for clarification.

The thing is; as I already know, that Unity/KSP and the "way it provides logs" is not made to find a culprit soon.
It can unfortunately happen too often that a log entry points to A when it means B vs. C