enowars/enochecker

enochecker sometimes doesn't respond

Closed this issue · 2 comments

With 512 teams, 240s rounds and the service&checker of @mauricesvp and @5aint2ero, enochecker doesn't respond a small portion of tasks.

Scoreboard properly displays Unchecked and the launcher logs the socket exceptions:

LaunchCheckerTask failed: An error occurred while sending the request. (System.Net.Http.HttpRequestException)
   at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at EnoLauncher.Program.LaunchCheckerTask(CheckerTask task) in /services/EnoEngine/EnoLauncher/Program.cs:line 106
InnerException:
The response ended prematurely. (System.IO.IOException)
   at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)

I am fairly certain this is not an issue of limited resources on the VM, because the load on the machine is acceptable and other checkers are doing fine 🤔

This seems to be related to uwsgi and not the library itself. We are currently evaluating gunicorn instead of uwsgi here: enowars/enowars4-service-buggy#9

If the issue disappears (and does not return during long-term testing) I would consider this fixed

See enowars/EnoEngine#46 for some more details on this issue in combination with gunicorn.

The original issue seems to be related to uwsgi since the issue exists with close to 0 latency whereas gunicorn runs fine in those conditions. But since it is working fine with gunicorn I would consider this sort of a won'tfix? cc @domenukk