Closed jaraco closed 8 years ago
If self.socket is None, that's because the 'disconnect' method was called, probably due to an error on the socket in DCCConnection.process_data. Unfortunately, the nature of the error is discarded, so the first step is going to be to add some logging there.
Original comment by: Jason R. Coombs
After further investigation, and based on your report, I believe the issue arises when more than 16k of data is sent without a newline in a DCC Chat session, it triggers a disconnect (with a non-helpful "Bad peer! Naughty peer!" comment in the code). In 576fd2d6df26, I've added some logging when that occurs that might at least verify my suspicion that this is the cause.
Can you run with the latest (unreleased) IRC code and see if your server reports a log message when that occurs?
I'm not sure why there's a 16k limit on messages. Maybe it's part of the spec or maybe the author just assumed a 16k limit, so even if you confirm this is the cause, more investigation will need to be done to better understand the rationale.
Original comment by: Jason R. Coombs
I'm unable to replicate the issue, so with no follow-up response, I'm closing this issue. If you have additional detail or can help me replicate the issue, please do add more detail and I will gladly re-open.
Original comment by: Jason R. Coombs
When in a DCC chat with our logbot (source: http://code.google.com/p/bitfighter/source/browse/?repo=tools#hg%2Fbitfighter-logbot), the main thread in the bot will fully crash. Here is the stack trace:
self.socket is ends up NULL if too much data is pasted for some reason