irc
irc copied to clipboard
Busy transport causes PONG to fail assertion and panic.
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
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).