irc icon indicating copy to clipboard operation
irc copied to clipboard

Busy transport causes PONG to fail assertion and panic.

Open sqwishy opened this issue 6 years ago • 1 comments

I get a panic from an assertion failure in debug builds after starting a client that is configured to join a large number of channels. The message burst stuff is at its defaults, after maybe a minute or two, it panics while trying to respond to a ping. Maybe because the transport is considered not writable due to the throttling?

If my understanding is correct, maybe if it fails to send a ping immediately, it can set a flag that the transport can look for whenever it does become writable to know to preempt the queued messages and send a pong?

thread 'irc' panicked at 'assertion failed: result.is_ready()', /home/sqwishy/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.13.6/src/client/transport.rs:122:25

sqwishy avatar Feb 02 '19 10:02 sqwishy

Your explanation about the throttling seems plausible to me, and if so, something like your proposed solution should work. I'll investigate when I have the chance (but things are quite busy right now).

aatxe avatar Feb 03 '19 20:02 aatxe