Fix the server clock

Sort:
TheLittleNut

This is incredibly frustrating.  TImer bugs strike again.

 

Just played a game where I had PLENTY of time left to finish.  I had 25 seconds, opponent had about the same.  I was waiting for my opponent to move, staring at the screen, patiently waiting for an update on the position and BAM, I see his move and now i have 7 seconds left.

 

I make my move and set a premove just in case.  I see his move and BAM now i have 1 second left.  These timer bugs really have to be fixed or I'm definitely not renewing my membership.

Martin_Stahl

You were temporarily disconnected most likely; not a timer bug exactly. Now, the client code could be made a little more robust to try and reconnect more quickly but if there is a temporary connection problem between you and the chess.com Live server, then there really isn't much that can be done, short of pausing clocks during disconnects, which isn't likely.

Martin_Stahl

If this was the game, https://www.chess.com/live/game/2010623182, you had 20 seconds after move 25. Your opponent had 56 seconds and spent 26.6 seconds for move 26. The game shows you spent 12.8 seconds on the next move (which could be time spent, lag and/or a temp disconnect).  Your next series of moves was 0.8, 0.9, 0.1, 0.7 and then a loss on time.

TheLittleNut

"The game shows you spent 12.8 seconds"

 

Yeah, but my actual physical experience is that I waited for 12.8 seconds and then the move popped up and the server stole my time.

 

I'm on time warner cable (now spectrum) and I have 100% of my house covered with ubiquity APs.  I have like 10ms to the chess.com servers, and plenty of bandwidth available.  I'm fully aware there's possibility of network blips in between here and there, but that should not penalized me on my speed games.

 

I finally have video proof that I'll have up shortly of a different game.  I started recording after having my first issue today.

TheLittleNut

https://youtu.be/w8S4KrPltYM

 

You can jump to 3:43 on this awful awful game.

 

But it demonstrates the clock problems pretty clearly.

TheLittleNut

There is a reconnection event at 55 seconds in, and 20 seconds came off my clock.

TheLittleNut

"short of pausing clocks during disconnects,"

 

This is not exactly the solution.  The solution is to trust the local client clock for time spent between making moves, aka timeseal on PC's in the old days of only having ICS servers for winboard and such.

Martin_Stahl

The site does use a process to trust the time taken but it also only compensates for up to 2 seconds of lag. https://support.chess.com/customer/portal/articles/1444876

David

You could also see if some of the other network settings are any better: https://www.chess.com/blog/News/how-to-adjust-your-live-chess-connection

Martin_Stahl
Caedrel wrote:

You could also see if some of the other network settings are any better: https://www.chess.com/blog/News/how-to-adjust-your-live-chess-connection

 

According to the video, the OP is on the app.

erik

Thanks, TheLittleNut. I'm going to find logs on that game and see what happened. The truth is that connections across the internet are tricky. It's never our network causing delays (because we only own inside the datacenter), so it's external to that. But I'm going to look at this game... https://www.chess.com/live/game/2010662586?username=thelittlenut 

erik

TheLittleNut, would you mind telling me what connection you were on? Mobile data? Or wifi? Also, can you tell me geographically where you are? (You can message me privately if you are concerned.)

 

7 seconds IS a long time, but internet can hiccup like that depending on network, etc. I'd like to see where it's happening. Normally most network lag is <500ms per move, so 1 second or less. 

The_Chin_Of_Quinn

Better to look at the video during 2:37 when black's clock drops 8 seconds (from 42 to 34)

erik

Hey. So, we looked at the server logs for this and found some information. Most notably, your opponent was also playing on Android at the exact same time and had no connection issues at all. We noticed that there were several times where your connection stopped for long periods of time. When that happens, we also ping Google and other large sites to determine if it is somehow a network issue where there is an overall network issue on your device. In each of these cases, your phone was also unable to contact Google for the same amount of time. 

I know this is SUPER frustrating. Heck, I also play on mobile (iPhone). I hate when I have network issues. 

My question for you (and others) is: if there is trouble on the network between your device and our server - which again, we do not own the internet between you and us! - what should we show or say in order to convey that more clearly? 

I'm all ears!

Martin_Stahl

I don't play on mobile very often when I do play but maybe some kind of flashing indicator like what is used for the website during disconnects?

The_Chin_Of_Quinn
erik wrote:

Hey. So, we looked at the server logs for this and found some information. Most notably, your opponent was also playing on Android at the exact same time and had no connection issues at all. We noticed that there were several times where your connection stopped for long periods of time. When that happens, we also ping Google and other large sites to determine if it is somehow a network issue where there is an overall network issue on your device. In each of these cases, your phone was also unable to contact Google for the same amount of time. 

I know this is SUPER frustrating. Heck, I also play on mobile (iPhone). I hate when I have network issues. 

My question for you (and others) is: if there is trouble on the network between your device and our server - which again, we do not own the internet between you and us! - what should we show or say in order to convey that more clearly? 

I'm all ears!

OP mentions trusting the client clock. Is the reason that's not done because it's too easy to exploit?

Martin_Stahl

I thought it was partially to try and keep games from taking a lot longer due to those type of issues.

erik

It's both reasons. People could try to hack client to say that moves took longer to reach their device than they actually did (and therefore give them more time), AND, while it's a bummer to have a bad connection, it's also a bummer to have your opponent overly-impacted by your bad connection. Imagine a 5 min game taking 20 minutes because of one person's bad lag.

Like always, there are no easy answers... just tradeoffs :/

TheLittleNut

I'm on WIFI data to a cablemodem.  At the same time as the delays, the rest of my network is running fine.  I am sometimes at my house at the far end of the high quality wifi range, but still plenty close enough to get decently latency and good throughput.

 

The connection issues are super frustrating because they happen completely randomly, and oddly enough it seems to be generally on games going well.  I'll drop 20 seconds at a clip without the opportunity to make a move while time is leaking away.  And I have started other threads on this issue previously and many other people have chimed in and stated they too have this issue.

 

And this goes both ways... plenty of times I've hit the mid or endgame with a player who seems like he's taking a little bit too long to make a move (in the instance of a completely obvious recapture, or move out of check. it may take the user 10-15 seconds to 'make' the move, but based on my own experiences with lag and how it affects the gameplay on my end, it's a pretty high probability they are suffering from a lag issue and they may have had the possibility of really fighting back and continuing a good game, but their time is hijacked and they clock out.

 

 

And in terms of the clock.. Everything is hackable of course.  If someone truly has the will and skills to exploit something, they will.  But the solution back in the 90's was to run timeseal when connecting to FICS and ICS and that's exactly what it did, was trust the client clock over the server.

 

Obviously if you're playing a 3 minute game and you'll not want to suck up 20 minutes playing, and then if you give the benefit of trusting the client clock, then you're actually giving a benefit to the NON-lagged player who can sit there and study the board for 20 minutes (on a 3 minute game).

 

I think the client clock should be trusted to a certain point. The thresholds are going to have to be fine tuned.. but a 5-10 second reconnection delay, once or twice during a 3 minute game, I think can be accepted.  More than that, there should be a mutual 'do you wish to abort this game due to connection issues' popped up to both players after a given to-be-determined threshold.  It would not be considered a draw, and no rating adjustment would be made.  And this would of course follow the same flow as any other abort/disconnect behavior that the user would be flagged for too-frequent occurrences.

 

Longer games would have longer windows where connection issues would still be okay and the client clock trusted.  And there's plenty of ways to mitigate abuse and hacking/cracking of the clock.  Your application is signed and the server will check this before trusting the clock, and communication can be done via SSL, and lots of things can be double/triple verified to make sure that the majority of games are cheat-free.

TheLittleNut

"Better to look at the video during 2:37 when black's clock drops 8 seconds (from 42 to 34)"  Yeah that's another good one.  And not all the drops were accompanied by a 'reconnecting' event.