OrionFive / Hospitality

Orion's "Hospitality" and more
https://www.patreon.com/orionmods
GNU General Public License v3.0
91 stars 52 forks source link

Conflict with RuntimeGC #243

Closed brucethemoose closed 5 years ago

brucethemoose commented 5 years ago

I've repeatedly run into the exact same error raised by these issues:

https://github.com/OrionFive/Hospitality/issues/234

https://github.com/OrionFive/Hospitality/issues/238

But wasn't convinced that Giddy Up! was the culprit. I removed the mod, and the issue persisted. Digging a little deeper, I cross referenced my mod list with Krisocka's and ruled out every mod (other than hugslib and humanoid alien races) we have in common one by one, aka Combat Extended and its patches, Bionic/Recipe Icons, Allowtool, Hand 'n' Footwear, Animal Logic, More Faction Interaction, and A Dog Said. The animal spawning error persists with all those mods disabled.

However, there is one mod we have in common that freezes the problematic save when I tried to load it: Alpha Animals. Unfortunately, I can't replicate the bug in a fresh debug map with my full modlist either, as I mentioned in this issue.

So, in a nutshell, I'm not positive Alpha Animals is the root of the conflict, but assuming a single mod is to blame, I've effectively ruled out every other mod in my load order.

brucethemoose commented 5 years ago

Took a 2nd look, and ruled out some mods I missed in the first pass: RimFridge, VBE, Rain Washes Away Filth, RuntimeGC, Simple Sidearms, Color Coded Mood Bar. They're all unlikely suspects anyway. And the save still refuses to load without Alpha Animals.

Full log/modlist for reference: https://git.io/fjZjY

And here's my full mod folder and config folder. Load the first save that isn't an autosave:

https://drive.google.com/open?id=16tCAUv8adQAUD611sAHqN6Rjl510xCV9 https://drive.google.com/open?id=1Ap_eJ1wKQiPDHnK4sfS7f6Xa_ZdJEUAO

This is a particularly annoying issue to test, as I have to wait ages for Rimworld to load every time I switch a mod out... I'm gonna give reproduction steps with a debug map another shot. In the meantime, if anyone else runs into the same visitor generation error, please post your full log.

OrionFive commented 5 years ago

I'll definitely take Alpha Animals apart to see if there's anything obvious that would cause the issue. Since it throws two errors right away it was on my list of suspects anyway.

brucethemoose commented 5 years ago

OK, I've dealt with some mod conflicts in my time, but this one has me stumped.

I finally got the error to show up in a fresh dev mode map... inconsistently. First I "clear all things" from a fresh map, advance the game to 10 years after start using the "advance season" button, click "spawn colony" for an instant colony, then I spawn visitor group events (or advance seasons, which has the same effect) repeatedly until the game starts lagging or I get the right error, at which point I go back to square one.

Sometimes, I can sit there clicking 20 minutes before I see a single error. Sometimes it comes on the 10th visitor event. But the point is that the bug is impractically difficult to reproduce and pin down, at least on my setup.

And here's the kicker: the smallest modset I got the "spawned visitor without GuestComp" error with with didn't have Alpha Animals. This was the exact mod loadout I most recently got the error in:

Initializing new game with mods Core, Startup impact, RIMMSLoadUp, Mod Manager, HugsLib, JecsTools, Humanoid Alien Races 2.0, Giddy-up! Core, A Dog Said... Animal Prosthetics, Color Coded Mood Bar, Animals Logic, [KV] RimFridge - 1.0, Simple sidearms, Giddy-up! Battle Mounts, Giddy-up! Caravan, Giddy-up! Ride and Roll, Allow Tool, [FSF] Rain Washes Away Filth, RuntimeGC, Hospitality, More Faction Interaction, [FSF] Vanilla Bionics Expansion, Recipe icons, Combat Extended, [KV] Hand 'n' Footwear - 1.0

I spent the last 2-3 hours trying to narrow that down, but now I can't even get an error from the same mod loadout... So it's probably some combination of the above mods? And probably not Alpha Animals or Giddy Up?

OrionFive commented 5 years ago

I've gone through the defs, patches and code of Alpha Animals, and I can't see anything that would indicate that it causes extra animals to spawn. So I'm afraid it's probably not the culprit, as your experiments have shown as well.

OrionFive commented 5 years ago

In the latest experimental release I've changed the code so it doesn't kill the whole group if an animal is present, but just removes the animal(s). This can potentially cause problems if the animals are for sale, but at least the groups show up. Maaybe this helps.

brucethemoose commented 5 years ago

Thanks for the changes, that'll help my existing save.

Anyway, I've figured out the conflict... and it wasn't the mod I expected. RuntimeGC, of all things, seemingly modifies something that makes Hospitality add vanilla caravan animals to the visitor spawning pool. Hence removing RuntimeGC from an existing save didn't mitigate the issue, as the animals were already generated by previous caravans. And reproducing it seemed difficult and random because the animals wouldn't even be there to spawn unless some trade caravans already left the map. As it turns out, testing was relatively straightforward: spawn a few caravans (8 is good), wait for them to exit the map, then spawn visitors.

Log with RuntimeGC: https://gist.github.com/HugsLibRecordKeeper/54df9adc28d35c0d5212baddb4cc2dcc

OrionFive commented 5 years ago

Hhmm... Hospitality draws from the world pawn pool. Maybe I have to add another check that no animals are in it.

OrionFive commented 5 years ago

Gonna be fixed in the next update.