I need some help debugging an issue with the handin package. The handin plugin (client) displays “Making secure connection to <handin server> …”, and simply hangs. Closing the dialog and trying again never resolves the issue.
The only method that seems to resolve the issue, although inconsistently, is restarting DrRacket, opening a new file, and trying to submit that new file. This sometimes, but not always, enables the client to connect. Once it does connect, the issue doesn't seem to recur for some time. The client can make multiple successful submissions, at least until the end of lecture (maybe related to the next time they disconnect/reconnect to the internet).
We running Racket 7.8 on the server and 8.1 BC on the clients. We've seen the issue occur on many operating system---old and new versions of macOS, Windows 10, and at one report on Linux.
I can't just upgrade the clients to 8.2, since there's a bug in 8.2 that affects rendering inexact numbers in BSL, so I really want some confidence about what the issue is before I start upgrading versions.
Anecdotally, the problem seems more common this semester compared to the previous semester, and we upgraded the clients to 8.1 this semester, suggesting the clients are at fault.
When this problem occurs, there is nothing in the log on the handin server, suggesting the client did not even manage to initiate the connection to the server. In particular, the server never seems to make it to this log line:
https://github.com/racket/handin/blob/ac08937cc6b1eca8abe3d4d4df59876f95cbea17/handin-server/main.rkt#L679
This is one the earliest log lines and before pretty much anything happens, so we're *PRETTY SURE* the client is blocking.
Right now, my best guess is that we might be affected by this bug, which causes SSL ports to block incorrectly:
https://github.com/racket/racket/issues/3804
If so, it would probably be in the client, unless `(ssl-addresses r)` can block in the same way on the server, since otherwise the above log line would execute.
However, if it is the client, I don't have any explanation about why restarting DrRacket would workaround the bug, or why it sometimes doesn't work.
I'd appreciate any help.
--
William J. Bowman