I was back to working on load testing this week. The week started with me being able to get about 30 clients connected to the server before something would crash. By Friday afternoon Miranda was running in the high forties.
The weirdest bug I saw this week was when I received a UDP packet that was corrupted while travelling over the LAN. Local networks are super-reliable and in most cases, UDP packets check themselves, but there is an extremely tiny possibility of a corrupt packet getting through. I'm here to tell you it happened here this week. Miranda now properly detects this situation and drops the damaged packet.
Another strange bug was a crash on a call to a pure virtual function (which should never happen.) That turned out to be because every one in a million times I would call a function on an object from another thread before its constructor completed. Luckily I'd seen that one time before so I knew what to fix. I also have a crash with no callstack or data (Google tells me the callstack is uninitialized.) I'm not sure how I'm going to figure that one out yet.
The big bug though is that clients start mysteriously having trouble connecting once I get 35 or so clients connected. One of the tools I use to figure out that type of problem is trace logs which contain messages about significant events while the program is running. With nearly fifty clients connected, the size of the text log files from final test run Friday afternoon was an SSD busting 20.5GB! My last task Friday was to modify the game so that I can better match up all the messages in the server trace with the messages from the client having the connection problem. I'm hoping that will give me a clue about my mysterious connection difficulty.
In the evenings I knocked off a bunch of must-fix bugs and small feature additions from my All Access TO-DO list.
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.