Closed ctm closed 9 months ago
The tournament definitely knew that the new table (5501) had finished and that break time had occurred, because it sent the proper messages.
select public_table_messages.id, received_at at time zone 'MST', table_id, message from public_table_messages join tables on public_table_messages.table_id = tables.id and event_id = 4914 where player_id IS NULL order by received_at;
...
10122433 | 2023-11-29 18:39:24.081714 | 5501 | "TableFinished"
...
10123114 | 2023-11-29 18:54:59.779168 | 5500 | "ThisTableIsOnBreak"
I'll have to look closely at the code that waits for each hand to finish.
Found it:
if self.need_to_split {
self.silently_fold_all_but_blinds();
self.todo(NextAction::TryToPlaceLateRegistrants);
} else if self.notify_tournament_of_finished_hand {
self.todo(NextAction::HandFinished);
self.notify_tournament_of_finished_hand = false;
}
Obviously need_to_split
was true, which means there are two bugs: need_to_split
isn't being reset and HandFinished
isn't being sent when need_to_split
is set.
What was I thinking!?
Fixed. Deploying now.
Fix whatever bug caused this evening's BDSM tournament to hang.
At five of the hour, a hand finished, but we were never told we were on break AFAIK, and we never got a counter. Five minutes later the game didn't resume. There had been a table split earlier due to late registration and I assume that some sort of bookkeeping wasn't done properly and that the tournament paused the sole active table waiting for a zombie table to finish its hand.
I can check the logs for various things, but there was no panic so this one may be tough to track down.