Bot time outs

Yeah, that’s awesome. I’m super happy but honestly I care more about the timeouts and why it’s happening… It’s shameful and unpredictable.

1 Like

Like a sore tooth, right?
Or that weird stupid bug that keeps popping up intermittently in production, but nowhere else… and you lie awake in the evenings pondering, worrying, ruminating, conjecturing.
Know the feeling guy, know that feeling.

1 Like

As another data point. I noticed with my game against JP da Conceicao I did not time out at all but he did once at the end. Could be why I beat him…
So this is affecting other players as well.

1 Like

round:202
player: id:2 position: y:2 x:1484 speed:3 state:HIT_MUD statesThatOccurredThisRound:USED_TWEET, HIT_OIL, HIT_MUD boosting:false boost-counter:0 damage:2 score:473 powerups: OIL:13, LIZARD:9, EMP:1, TWEET:2
opponent: id:1 position: y:2 x:1488 speed:3

[░░░░░░░░░░▓░░░░░░░░░║]
[░░░█░2░░░1░░░░░T░░░░C║]
[░░░░░░░░C░░░░░░
░░░░░║]
[░░░░░░░░░░░░░░░░░░#░░║]

16:57:41,435 INFO Player B - MadMinimax: Got command [null]
16:57:41,435 WARN Player B - MadMinimax: No command provided, falling back to default no command
16:57:41,437 INFO Completed round: 202
16:57:41,454 INFO ******************************************************************************************************
16:57:41,454 INFO Starting round: 203
16:57:41,454 INFO Player A - LCubed: Map View
16:57:41,454 INFO ======================================================================================================
round:203
player: id:1 position: y:2 x:1496 speed:8 state:USED_BOOST statesThatOccurredThisRound:USED_BOOST boosting:true boost-counter:5 damage:2 score:374 powerups: OIL:16, LIZARD:2, TWEET:2
opponent: id:2 position: y:2 x:1487 speed:3

[░░░░░░░░░║]
[░░░T░1░░C║]
[░░░*░░░░░║]
[░░░░░░#░░║]

16:57:41,505 INFO Player A - LCubed: Got command [TURN_LEFT]
16:57:41,506 INFO Player B - MadMinimax: Map View
16:57:41,506 INFO ======================================================================================================
round:203
player: id:2 position: y:2 x:1487 speed:3 state:NOTHING statesThatOccurredThisRound:NOTHING boosting:false boost-counter:0 damage:2 score:473 powerups: OIL:13, LIZARD:9, EMP:1, TWEET:2
opponent: id:1 position: y:2 x:1496 speed:8

[░░░░░░░▓░░░░░░░░░║]
[█░▓░░2Φ░░░░░T░1░░C║]
[░░░░░C░░░░░░
░░░░░║]
[░░░░░░░░░░░░░░░#░░║]

16:57:42,166 INFO Player B - MadMinimax: Got command [TURN_LEFT]
16:57:42,167 INFO Completed round: 203
16:57:42,182 INFO ******************************************************************************************************
16:57:42,183 INFO Game Complete
16:57:42,184 INFO Checking if match is valid
16:57:42,186 INFO =======================================
16:57:42,186 INFO The winner is: A - LCubed

A - LCubed - score:374 health:0
B - MadMinimax - score:470 health:0

16:57:42,186 INFO =======================================
16:57:42,187 INFO Player A - LCubed (id 6857b020-4a87-4c61-b186-1fed4558aa21): Signaling bot runner to shutdown
16:57:42,191 INFO Player B - MadMinimax (id cb057bb9-8315-4b21-8609-6b3f05e8cfe3): Signaling bot runner to shutdown
16:57:42,200 INFO

Eish, this is worrying! Thanks for picking it up, @LouisLotter.
(also wow, what a nailbiter of a race!)

I’m sure entelect will get to the bottom of it . Rematches with the same seeds seems the most fair to me.

I haven’t seen my bot take longer than 300ms to make a decision on my side.

1 Like

Hey,

No real troubles on my side.

I also noticed some strange behaviour in one of my matches (only checked 2).

Im not too bothered as I saw a few of my losses were last minute changes that stole a matchpoint here and there.
Bothersome but humbling. Something I needed.

Would you be able to run for example a script to check if there was timeouts in a match?
In one of my matches I had an instance where I had a timeout and the next 2 moves was completely different from the moves the same seed would have made.

Could have been a bug but im still suspitions.
As for my own bot timing out, Im not saying its impossible. But my rounds are constantly under 30 MS. So a jump to 1000 MS means I have some endless loop bug (Not unlikely) or an issue with the engine itself.

If any more intel is needed feel free to let me know.

So I would say consider flaging matches that had timeouts and doing a rerun. Maybe once all matches have concluded.

Just thought I would chime in on this thread as I have also seen a strange timeout followed by a very random move and it all happened in the first 5 rounds of a match. Can send more details in DM. If required. Such as VS who and so on. Just incase it would help.

The problem with just rerunning is that these issues could affect the Finals. I’d prefer some investigation into the causes first.

Alternatively I guess we could just rerun important games that determine the top 8 and run the Finals on a desktop machine with no VM’s and Docker containers to cause problems.

Just thought I’d share, if you’re on Linux (or at least have access to grep) you could run this in a folder where you extracted all your matches to find timeouts (since you asked about a script to find timeouts)

grep 1000 */*/*/Player*

EDIT: Previous command seems to return some false positives - this one gives more consistent results:

grep "No Command" */*/*/Player*
2 Likes

I just lost a game where I timed out more than a 100 times…
It seems it gets worse as the tournament runs.

Is the bot runner killing of bots properly ? I noticed that on my machine it would not always do that
properly.

Yeah, I’m starting to lose a lot of games now… with tons of timeouts.

@LouisLotter an interesting thing I noticed while checking a couple of my games is that it seems the only games me or the opponent timed out were against your bot. I did not check all my games though so this could be incorrect and just a coincidence.

1 Like

Interesting thanks. Maybe I’m straining the node in some way. I do store simulation data in the jar itself which I load up as needed which may strain the IO in some way I guess. It’s only 30 MB though so I don’t really understand why that could be such a huge issue.

Maybe someone else can confirm whether they see the same thing or if they also have timeouts in other games.

1 Like

Just checked through 15 matches against some of the top 10 players and the only timeouts were when playing against @LouisLotter - maybe someone else could also check?

@LouisLotter kicked my ass twice, no timeouts.

Correction, the match logs shows different (I was looking at endGameStatus).

So yeah, looks like in the last game LCubed had a couple of " No command provided" situations.
Man, now the loss is even more embarrassing.

The first match did not have any timeouts btw .

1 Like

also just checked and it seems like @LouisLotter is the only one so far with timeouts from the 13 matches i’ve checked.

I also apparently have a match where nothing worked - only match log was generated full of errors.
Both bots apparently failed to startup (or something), both got 0 score, and I got flagged as the loser.
Weird.

FWIW It looks like I got a timout in my game against @kobus-v-schoor, on the last turn.
Could be my fault, just thought I’d mention.

I’ve also only seen timeouts from Louis in the matches I’ve checked. Then again, I still lost both, so :man_shrugging: Pretty close losses though - the EMP really makes for close matches, which I suppose was its purpose. No more runaway victories like in the last round :frowning: Though possibly I was the only one those were fun for!

No idea what could be causing the timeouts. I didn’t see any in testing, and no one seems to have reported them in previous rounds. Must be a recent change and something that only happens on the tournament servers. Possibly because Louis’ bot cuts it closer to the time limit than most other bots I’ve seen? Times in the 600-800ms range whereas most other bots seem to be 0-200ms. Though my bot delays for 926ms every first round and that doesn’t seem to cause timeouts.

There was this thread… Some insight into the mysterious timeouts
At the end of this thread, Pierre Roux says that it is plausible that disk lag could cause timeouts.
And I am doing a lot of IO. I stored my pre-calculated fitness values in files that I access as I need them.