I've added some code locally to check which of m.Client or m.User is nil and tried blackholing the server IPs but so far have been unable to reproduce the crash.
Possibly it would be safest to shut down antiIdle while reconnecting, but it's part of the top-level generic code, and the reconnect loop is handled in the bridge code, so this is not entirely trivial to do and might still be racy. So probably the first step is still to work out what is nil in the first place.
I had some network problems recently, and matterircd crashed while it was trying to reconnect:
Here's where the crash happens:
I've added some code locally to check which of
m.Client
orm.User
is nil and tried blackholing the server IPs but so far have been unable to reproduce the crash.Possibly it would be safest to shut down
antiIdle
while reconnecting, but it's part of the top-level generic code, and the reconnect loop is handled in the bridge code, so this is not entirely trivial to do and might still be racy. So probably the first step is still to work out what is nil in the first place.