ctm / mb2-doc

Mb2, poker software
https://devctm.com
7 stars 2 forks source link

Early timeout? #1332

Closed ctm closed 4 months ago

ctm commented 4 months ago

Investigate the timeout reported below:

smalltalkdan: wtf smalltalkdan: pat 7, timed out, no alarm. jpmassar: weird jpmassar: didn jpmassar: didn't think 40 seconds had elapsed

This happened in event 5170.

ctm commented 4 months ago

Turns out, 🐭GamboMouse created the event with only 20 seconds to act, rather than the default 40 I suck. The default is 20 seconds to act. It's 40 seconds after calling time, and smalltalkdan didn't call time, because he didn't hear an alarm:

mb2=> select short_name, nick, start_at at time zone 'america/denver', secs_to_act from events join players on owner = players.id where events.id = 5170;
 short_name |     nick     |      timezone       | secs_to_act 
------------+--------------+---------------------+-------------
 bdsm       | 🐭GamboMouse | 2024-03-03 18:05:00 |          20
(1 row)

That explains why smalltalkdan timed out so quickly. It doesn't explain why there was no alarm. I'll investigate that next.

One possibility is that messages from the server got backed up on their way to the client. Currently, mb2 doesn't have lag detection and that can make for a horrible experience when messages are arbitrarily delayed. I'll send some email, but I don't think there's a separate bug here.

ctm commented 4 months ago

Oh, and FTR, here are the logs that show the server sent the reminder message:

mb2=> select id, received_at at time zone 'america/denver', created_at at time zone 'america/denver', substr(message::text, 0, 140) from public_table_messages where hand_id = 395913 and player_id is null order by received_at asc;
    id    |          timezone          |          timezone          |                                                                   substr                                                                    
----------+----------------------------+----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------
...
 10577169 | 2024-03-03 18:43:02.64103  | 2024-03-03 18:43:02.643347 | {"Draws": [6, 0]}
 10577170 | 2024-03-03 18:43:02.645923 | 2024-03-03 18:43:02.648362 | {"Draws": [17, 2]}
 10577171 | 2024-03-03 18:43:02.651758 | 2024-03-03 18:43:02.653999 | "FinishedDrawing"
 10577172 | 2024-03-03 18:43:02.656158 | 2024-03-03 18:43:02.65831  | {"Remind": [20000, 0, "2024-03-04T01:43:22.639636733Z", 14, 20]}
 10577173 | 2024-03-03 18:43:06.450612 | 2024-03-03 18:43:06.452812 | {"Bets": [14, 3000, null, false]}
 10577174 | 2024-03-03 18:43:06.454975 | 2024-03-03 18:43:06.457113 | {"Remind": [20000, 3000, "2024-03-04T01:43:26.449268743Z", 6, 20]}
 10577175 | 2024-03-03 18:43:26.452382 | 2024-03-03 18:43:26.454684 | {"Vacationed": 6}
 10577176 | 2024-03-03 18:43:26.457626 | 2024-03-03 18:43:26.459852 | {"Folds": [6, true, null, "Vacation"]}
 10577177 | 2024-03-03 18:43:26.462539 | 2024-03-03 18:43:26.464804 | {"ReturnUncalled": [14, 3000]}
...

The Vacationed message is sent 20 seconds after the Remind.

ctm commented 4 months ago

I sent email.

ctm commented 4 months ago

Nothing left to do but 🙁🙁🙁.