So, Battledroid continues crawling along. I’ve come across a bit of an issue which doesn’t bode well and will I suspect cause grave problems after any attempt at scaling.
I get a lot of seemingly random “java.net.SocketTimeoutException: connect timed out” when I try and connect to the Battledroid server. It’s a TCP/IP connection on puppygames.net:25000.
95% of the time, the connection succeeds just fine, and the request is processed in a total of 450ms or so in its entirety. I’m polling the server once per second with this simple, tiny request (I think the payload is less than 100 bytes but that’s neither here nor there). But every so often it’ll just timeout attempting to connect. Changing the socket timeout to larger values (up to 20 seconds!) doesn’t seem to fix it… it’s like the initial connection is simply lost in space.
Probing the firewall logs I’m not seeing any evidence of rate limiting or blocking from the firewall (indeed, coming from my home machine, there are no firewall rules in the way to my Linux server).
This is perplexing. A ping never fails. A browse to www.puppygames.net never fails. Only my TCP/IP connections in-game (made by Java) are failing.
Has anybody any good ideas of how to proceed with diagnosing it?
A little further information:
tcpview shows that we get as far as SYN_SENT status on the client. So presumably the preamble genuinely isn’t reaching the server but is vanishing somewhere en route.