Unfortunately, I have no idea of what caused this. I just left my client running for a while (several hours), came back, and looked at the terminal. The problem apparently happened somewhere in for_each_incoming(), but that's as much as I can tell you.
Here's the backtrace:
thread '<unnamed>' panicked at 'assertion failed: self.remaining_mut() >= src.remaining()', /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/bytes-0.4.4/src/buf/buf_mut.rs:229
stack backtrace:
0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::_print
at /checkout/src/libstd/sys_common/backtrace.rs:71
2: std::panicking::default_hook::{{closure}}
at /checkout/src/libstd/sys_common/backtrace.rs:60
at /checkout/src/libstd/panicking.rs:355
3: std::panicking::default_hook
at /checkout/src/libstd/panicking.rs:371
4: std::panicking::rust_panic_with_hook
at /checkout/src/libstd/panicking.rs:549
5: std::panicking::begin_panic
at /checkout/src/libstd/panicking.rs:511
6: bytes::buf::buf_mut::BufMut::put
at ./<panic macros>:3
7: <irc::proto::line::LineCodec as tokio_io::framed_write::Encoder>::encode
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/proto/line.rs:72
8: <irc::proto::irc::IrcCodec as tokio_io::framed_write::Encoder>::encode
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/proto/irc.rs:39
9: <tokio_io::framed::Fuse<T, U> as tokio_io::framed_write::Encoder>::encode
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.2/src/framed.rs:196
10: <tokio_io::framed_write::FramedWrite2<T> as futures::sink::Sink>::start_send
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.2/src/framed_write.rs:205
11: <tokio_io::framed::Framed<T, U> as futures::sink::Sink>::start_send
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.2/src/framed.rs:124
12: <irc::client::transport::IrcTransport<T> as futures::sink::Sink>::start_send
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/transport.rs:81
13: <irc::client::transport::IrcTransport<T> as futures::stream::Stream>::poll
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/transport.rs:58
14: <irc::client::conn::Connection as futures::stream::Stream>::poll
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/conn.rs:159
15: <futures::stream::split::SplitStream<S> as futures::stream::Stream>::poll
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/stream/split.rs:14
16: <irc::client::server::ServerStream as futures::stream::Stream>::poll
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/server/mod.rs:89
17: <futures::stream::for_each::ForEach<S, F, U> as futures::future::Future>::poll
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/stream/for_each.rs:45
18: <futures::task_impl::Spawn<F>>::poll_future_notify::{{closure}}
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:291
19: <futures::task_impl::Spawn<T>>::enter::{{closure}}
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:352
20: futures::task_impl::std::set
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/std/mod.rs:90
21: <futures::task_impl::Spawn<T>>::enter
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:352
22: <futures::task_impl::Spawn<F>>::poll_future_notify
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:291
23: futures::task_impl::std::<impl futures::task_impl::Spawn<F>>::wait_future
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/task_impl/std/mod.rs:255
24: futures::future::Future::wait
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.14/src/future/mod.rs:285
25: irc::client::server::EachIncomingExt::for_each_incoming
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/server/mod.rs:36
26: irc::client::server::Server::for_each_incoming
at /home/adam/.cargo/registry/src/github.com-1ecc6299db9ec823/irc-0.12.2/src/client/server/mod.rs:64
27: ircfs::ircfs::IrcFs::new::{{closure}}
at ./src/ircfs.rs:70
28: <std::panic::AssertUnwindSafe<F> as core::ops::FnOnce<()>>::call_once
at /checkout/src/libstd/panic.rs:296
29: std::panicking::try::do_call
at /checkout/src/libstd/panicking.rs:454
30: __rust_maybe_catch_panic
at /checkout/src/libpanic_unwind/lib.rs:98
31: std::panicking::try
at /checkout/src/libstd/panicking.rs:433
32: std::panic::catch_unwind
at /checkout/src/libstd/panic.rs:361
33: std::thread::Builder::spawn::{{closure}}
at /checkout/src/libstd/thread/mod.rs:360
34: <F as alloc::boxed::FnBox<A>>::call_box
at /checkout/src/liballoc/boxed.rs:640
35: std::sys::imp::thread::Thread::new::thread_start
at /checkout/src/liballoc/boxed.rs:650
at /checkout/src/libstd/sys_common/thread.rs:21
at /checkout/src/libstd/sys/unix/thread.rs:84
36: start_thread
37: clone
Unfortunately, I have no idea of what caused this. I just left my client running for a while (several hours), came back, and looked at the terminal. The problem apparently happened somewhere in
for_each_incoming()
, but that's as much as I can tell you.Here's the backtrace: