Multi-Player Bugs and Crashes, v39 & SVN after July, 20th 2019

Thunderbrd

C2C War Dog
Joined
Jan 2, 2010
Messages
29,812
Location
Las Vegas
Report any OOS errors or issues with Multi-Player simultaneous games here.

You CAN play Simultaneous Multi-player as a single player and get a semi-real time turn based game that processes turns a bit faster since the AI is moving when you do. We can also try to debug those as well.

If you are trying to play actual multi-player, the IP connection is the most valid but you're likely to hit some OOS errors. To minimize these,

1) Turn off events in the game options when you set things up - yes this negates flammability but you'll have lots of OOS errors all game if you don't.
2) Make sure Rev is off. This tends to cause some as well.
3) Make sure to try to avoid building any wonders other players are building, even if it lets you, especially if you are on the same team.
4) Avoid automating anything at all, including sending units beyond the reach of their movement for a turn. For some reason, this is a known issue.

Beyond that, when you DO get an OOS error (which sometimes happens in the first round even) you should:
1) report the autosave if you have one from the immediate round before the OOS takes place and you find you can repeatedly hit the same OOS error that round.

2) report the logs you get - you should have logging turned on for all systems through the config ini settings.

and more importantly:

3) save the game AFTER the OOS has taken place, have everyone get out entirely to desktop, all reload and reinitialize the game. If you try to shortcut this to get back on track, you will doom yourself to immediate OOS errors again.

If you're having a LOT of OOS errors, please post here to let me know to look into it. A 2 player game is something I can TRY to evaluate somewhat, and just knowing the era and when things are beginning to OOS a lot can help.

We're not totally clean with this yet but my wife and I can often get a pretty good game going without hitting all that many, or at least we were recently. It can only take one bad update to make everything go very south in this department. Keep me posted on your experiences here.
 
According to some discussions on Git, I'm posting some logs here. Checking the compare on the OOS logs I'm more confused than enlightened. Something is very wrong with those and you can see what I mean.
 

Attachments

  • TB's Logs.7z
    24.8 KB · Views: 155
  • Whisperr's Logs.7z
    39.5 KB · Views: 175
According to some discussions on Git, I'm posting some logs here. Checking the compare on the OOS logs I'm more confused than enlightened. Something is very wrong with those and you can see what I mean.
Yeah, this data is useless due to a bug in the OOSLogger that crash it quite early in the write process.
It's fixed on git now.

@alberts2, It's quite easy to check that the OOSLogger changes you make are working as expected. Just put in these two lines in the CvEventManager.gameStart function.
import OOSLogger
OOSLogger.writeLog()


And this will write out the log when you start any game.
 
@alberts2:
Why did you remove this city info from the OOS Log? (in this commit)

getProductionName() ▬ What is at the top of the build queue.
getProduction() ▬ Number of hammers progress on current production
getGreatPeopleProgress() ▬ Great person progress of city
getBaseGreatPeopleRate() ▬ Base GP rate per turn in city
getGreatPeopleRate() ▬ Effective GP rate per turn in city

Are all of these things irrelevant for debugging OOS errors?
 
Are all of these things irrelevant for debugging OOS errors?

I made the OOSLogger match the checksum calculation in CvGame::calculateSyncChecksum it doesn't help to log things which aren't included in that calculation. The checksum calculation itself could need some more work to include more things.
 
@Whisperr is using a older version of C2C as you are. The python error in OOSLogger.writeLog on your side should be fixed now.
Maybe she didn't update properly. I'll take a look at how she goes about that next time. We'll try again tonight. Hopefully we can get a little further in to see if we can catch the root issue in the queue.
 
I made the OOSLogger match the checksum calculation in CvGame::calculateSyncChecksum it doesn't help to log things which aren't included in that calculation. The checksum calculation itself could need some more work to include more things.
Cool, thanks for explaining.
 
Top Bottom