tokio-rs / tokio

A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
https://tokio.rs
MIT License
26.36k stars 2.42k forks source link

Memory leak #1092

Closed andrewbanchich closed 5 years ago

andrewbanchich commented 5 years ago

Version

0.1.18

~/D/emmett > cargo tree | grep tokio
│   │   │   └── tokio-io v0.1.12
│   │   ├── tokio v0.1.20
│   │   │   ├── tokio-codec v0.1.1
│   │   │   │   └── tokio-io v0.1.12 (*)
│   │   │   ├── tokio-current-thread v0.1.6
│   │   │   │   └── tokio-executor v0.1.7
│   │   │   ├── tokio-executor v0.1.7 (*)
│   │   │   ├── tokio-fs v0.1.6
│   │   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   │   └── tokio-threadpool v0.1.14
│   │   │   │       └── tokio-executor v0.1.7 (*)
│   │   │   │   └── tokio-io v0.1.12 (*)
│   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   ├── tokio-reactor v0.1.9
│   │   │   │   ├── tokio-executor v0.1.7 (*)
│   │   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   │   └── tokio-sync v0.1.5
│   │   │   ├── tokio-sync v0.1.5 (*)
│   │   │   ├── tokio-tcp v0.1.3
│   │   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   │   └── tokio-reactor v0.1.9 (*)
│   │   │   ├── tokio-threadpool v0.1.14 (*)
│   │   │   ├── tokio-timer v0.2.10
│   │   │   │   └── tokio-executor v0.1.7 (*)
│   │   │   ├── tokio-trace-core v0.1.0
│   │   │   ├── tokio-udp v0.1.3
│   │   │   │   ├── tokio-codec v0.1.1 (*)
│   │   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   │   └── tokio-reactor v0.1.9 (*)
│   │   │   └── tokio-uds v0.2.5
│   │   │       ├── tokio-codec v0.1.1 (*)
│   │   │       ├── tokio-io v0.1.12 (*)
│   │   │       └── tokio-reactor v0.1.9 (*)
│   │   ├── tokio-executor v0.1.7 (*)
│   │   ├── tokio-io v0.1.12 (*)
│   │   ├── tokio-reactor v0.1.9 (*)
│   │   ├── tokio-tcp v0.1.3 (*)
│   │   ├── tokio-threadpool v0.1.14 (*)
│   │   ├── tokio-timer v0.2.10 (*)
│   │   └── tokio-io v0.1.12 (*)
│   ├── tokio v0.1.20 (*)
│   ├── tokio-executor v0.1.7 (*)
│   ├── tokio-io v0.1.12 (*)
│   ├── tokio-threadpool v0.1.14 (*)
│   ├── tokio-timer v0.2.10 (*)
│   │   ├── tokio-process v0.2.3
│   │   │   ├── tokio-io v0.1.12 (*)
│   │   │   ├── tokio-reactor v0.1.9 (*)
│   │   │   └── tokio-signal v0.2.7
│   │   │       ├── tokio-executor v0.1.7 (*)
│   │   │       ├── tokio-io v0.1.12 (*)
│   │   │       └── tokio-reactor v0.1.9 (*)
│   │   └── tokio-timer v0.2.10 (*)
│   ├── tokio v0.1.20 (*)
│   ├── tokio-timer v0.2.10 (*)
├── tokio v0.1.20 (*)
├── tokio-process v0.2.3 (*)

Platform

Both:

Darwin hostname 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64

and

Linux hostname 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Description

I'm using Tokio for creating an ETL tool: https://gitlab.com/andrewbanchich/emmett

I noticed when I run the program that the memory used steadily increases maybe 200KB every seconds for as long as i keep it running.

I'm not sure if this is something with Tokio or if I'm just doing something wrong (I'm guessing it's the latter).

To reproduce, you can clone the repo, cd into it, and do cargo run from that directory. It needs to be in the project directory because I'm currently reading the test config files in the example_configs directory.

Basic overview: each Pipeline has a block of several Inputs, Filters, and Outputs, each of which are implemented as Streams. Each one of these is a spawned task and they communicate through Tokio's mpsc channels, except for Outputs which need crossbeam-channel.

I tried removing the outputs and crossbeam entirely and I am still seeing the issue.

Here is the valgrind output:

root@hostname:~/emmett# valgrind --leak-check=full --show-reachable=yes emmett
==31479== Memcheck, a memory error detector
==31479== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==31479== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==31479== Command: emmett
==31479==
^C==31479==
==31479== Process terminating with default action of signal 2 (SIGINT)
==31479==    at 0x59379F3: futex_wait_cancelable (futex-internal.h:88)
==31479==    by 0x59379F3: __pthread_cond_wait_common (pthread_cond_wait.c:502)
==31479==    by 0x59379F3: pthread_cond_wait@@GLIBC_2.3.2 (pthread_cond_wait.c:655)
==31479==    by 0x48E44B: futures::task_impl::std::ThreadNotify::park (in /root/.cargo/bin/emmett)
==31479==    by 0x1675A9: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x205BC7: tokio_executor::enter::Enter::block_on (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85F2: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== HEAP SUMMARY:
==31479==     in use at exit: 48,044 bytes in 397 blocks
==31479==   total heap usage: 592 allocs, 195 frees, 87,525 bytes allocated
==31479==
==31479== 3 bytes in 1 blocks are still reachable in loss record 1 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x2036C3: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 3 bytes in 1 blocks are still reachable in loss record 2 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x20382B: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 5 bytes in 1 blocks are still reachable in loss record 3 of 97
==31479==    at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x497774: realloc (alloc.rs:111)
==31479==    by 0x497774: realloc (alloc.rs:166)
==31479==    by 0x497774: reserve_internal<u8,alloc::alloc::Global> (raw_vec.rs:666)
==31479==    by 0x497774: reserve_exact<u8,alloc::alloc::Global> (raw_vec.rs:411)
==31479==    by 0x497774: reserve_exact<u8> (vec.rs:482)
==31479==    by 0x497774: std::ffi::c_str::CString::from_vec_unchecked (c_str.rs:353)
==31479==    by 0x4964A3: _new (c_str.rs:328)
==31479==    by 0x4964A3: new<alloc::string::String> (c_str.rs:322)
==31479==    by 0x4964A3: {{closure}} (mod.rs:1115)
==31479==    by 0x4964A3: map<alloc::string::String,std::ffi::c_str::CString,closure> (option.rs:414)
==31479==    by 0x4964A3: std::thread::Thread::new (mod.rs:1114)
==31479==    by 0x4A2B0E: std::rt::lang_start_internal (rt.rs:40)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 8 bytes in 1 blocks are still reachable in loss record 4 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4528A3: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 8 bytes in 1 blocks are still reachable in loss record 5 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4547C6: <tokio_timer::timer::Timer<T, N>>::new_with_now (in /root/.cargo/bin/emmett)
==31479==    by 0x452936: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 8 bytes in 1 blocks are still reachable in loss record 6 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x452A14: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 8 bytes in 1 blocks are still reachable in loss record 7 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x44FD1D: <tokio_threadpool::park::boxed::BoxedPark<T> as tokio_executor::park::Park>::unpark (in /root/.cargo/bin/emmett)
==31479==    by 0x46AE38: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 9 bytes in 1 blocks are still reachable in loss record 8 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x20375D: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 9 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x455130: tokio_trace_core::dispatcher::Dispatch::none (in /root/.cargo/bin/emmett)
==31479==    by 0x448669: tokio_trace_core::dispatcher::CURRENT_DISPATCH::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x44A195: <std::thread::local::LocalKey<T>>::try_with (in /root/.cargo/bin/emmett)
==31479==    by 0x448515: tokio_trace_core::dispatcher::get_default (in /root/.cargo/bin/emmett)
==31479==    by 0x452EB5: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 10 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47378A: <crossbeam_deque::Worker<T>>::new_fifo (in /root/.cargo/bin/emmett)
==31479==    by 0x46C784: tokio_threadpool::worker::entry::WorkerEntry::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46AE51: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 11 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A944C: alloc (alloc.rs:75)
==31479==    by 0x4A944C: exchange_malloc (alloc.rs:185)
==31479==    by 0x4A944C: std::sys::unix::thread::Thread::new (thread.rs:45)
==31479==    by 0x469F7E: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 12 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x455130: tokio_trace_core::dispatcher::Dispatch::none (in /root/.cargo/bin/emmett)
==31479==    by 0x448669: tokio_trace_core::dispatcher::CURRENT_DISPATCH::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x44A259: <std::thread::local::LocalKey<T>>::try_with (in /root/.cargo/bin/emmett)
==31479==    by 0x4485E4: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 13 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x46FE56: <slab::Slab<T>>::insert (in /root/.cargo/bin/emmett)
==31479==    by 0x468934: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 14 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F2701: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF175: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 16 bytes in 1 blocks are still reachable in loss record 15 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F2701: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 21 bytes in 1 blocks are still reachable in loss record 16 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4B9574: alloc (alloc.rs:75)
==31479==    by 0x4B9574: alloc (alloc.rs:151)
==31479==    by 0x4B9574: allocate_in<u8,alloc::alloc::Global> (raw_vec.rs:95)
==31479==    by 0x4B9574: with_capacity<u8> (raw_vec.rs:139)
==31479==    by 0x4B9574: with_capacity<u8> (vec.rs:355)
==31479==    by 0x4B9574: to_vec<u8> (slice.rs:159)
==31479==    by 0x4B9574: to_vec<u8> (slice.rs:380)
==31479==    by 0x4B9574: clone<u8> (vec.rs:1642)
==31479==    by 0x4B9574: <alloc::string::String as core::clone::Clone>::clone (string.rs:1684)
==31479==    by 0x46B143: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 23 bytes in 1 blocks are still reachable in loss record 17 of 97
==31479==    at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4919FB: realloc (alloc.rs:111)
==31479==    by 0x4919FB: realloc (alloc.rs:166)
==31479==    by 0x4919FB: shrink_to_fit<u8,alloc::alloc::Global> (raw_vec.rs:604)
==31479==    by 0x4919FB: shrink_to_fit<u8> (vec.rs:579)
==31479==    by 0x4919FB: <alloc::vec::Vec<T>>::into_boxed_slice (vec.rs:635)
==31479==    by 0x497801: std::ffi::c_str::CString::from_vec_unchecked (c_str.rs:355)
==31479==    by 0x4964A3: _new (c_str.rs:328)
==31479==    by 0x4964A3: new<alloc::string::String> (c_str.rs:322)
==31479==    by 0x4964A3: {{closure}} (mod.rs:1115)
==31479==    by 0x4964A3: map<alloc::string::String,std::ffi::c_str::CString,closure> (option.rs:414)
==31479==    by 0x4964A3: std::thread::Thread::new (mod.rs:1114)
==31479==    by 0x469EBC: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 24 bytes in 1 blocks are still reachable in loss record 18 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x467CC5: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==    by 0x47001B: _ZN3std9panicking3try7do_call17h0eb896e5d075b302E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 24 bytes in 1 blocks are still reachable in loss record 19 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x203E57: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 20 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x4A07AB: register_dtor (fast_thread_local.rs:29)
==31479==    by 0x4A07AB: register_dtor<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> (local.rs:387)
==31479==    by 0x4A07AB: get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> (local.rs:378)
==31479==    by 0x4A07AB: __getit (local.rs:186)
==31479==    by 0x4A07AB: try_with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,()> (local.rs:297)
==31479==    by 0x4A07AB: with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,()> (local.rs:246)
==31479==    by 0x4A07AB: std::sys_common::thread_info::set (thread_info.rs:37)
==31479==    by 0x4A2B37: std::rt::lang_start_internal (rt.rs:41)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 21 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x551F7E4: _dlerror_run (dlerror.c:140)
==31479==    by 0x551F165: dlsym (dlsym.c:70)
==31479==    by 0x481203: mio::sys::unix::epoll::Selector::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47F2B0: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 22 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x45527E: tokio_trace_core::dispatcher::CURRENT_DISPATCH::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x44A12B: <std::thread::local::LocalKey<T>>::try_with (in /root/.cargo/bin/emmett)
==31479==    by 0x448515: tokio_trace_core::dispatcher::get_default (in /root/.cargo/bin/emmett)
==31479==    by 0x452EB5: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 23 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x462C0F: <tokio_reactor::sharded_rwlock::RwLock<T>>::read (in /root/.cargo/bin/emmett)
==31479==    by 0x45D353: <tokio_reactor::Inner as core::ops::drop::Drop>::drop (in /root/.cargo/bin/emmett)
==31479==    by 0x44D56C: <alloc::sync::Arc<T>>::drop_slow (in /root/.cargo/bin/emmett)
==31479==    by 0x44C70E: tokio::runtime::threadpool::Runtime::shutdown_on_idle (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85E7: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 24 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x48E88E: futures::task_impl::std::CURRENT_THREAD_NOTIFY::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x167565: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x205BC7: tokio_executor::enter::Enter::block_on (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85F2: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 25 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x4A07AB: register_dtor (fast_thread_local.rs:29)
==31479==    by 0x4A07AB: register_dtor<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> (local.rs:387)
==31479==    by 0x4A07AB: get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> (local.rs:378)
==31479==    by 0x4A07AB: __getit (local.rs:186)
==31479==    by 0x4A07AB: try_with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,()> (local.rs:297)
==31479==    by 0x4A07AB: with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,()> (local.rs:246)
==31479==    by 0x4A07AB: std::sys_common::thread_info::set (thread_info.rs:37)
==31479==    by 0x46AA40: <F as alloc::boxed::FnBox<A>>::call_box (in /root/.cargo/bin/emmett)
==31479==    by 0x4A990D: call_once<(),()> (boxed.rs:759)
==31479==    by 0x4A990D: start_thread (thread.rs:14)
==31479==    by 0x4A990D: std::sys::unix::thread::Thread::new::thread_start (thread.rs:81)
==31479==    by 0x59316DA: start_thread (pthread_create.c:463)
==31479==    by 0x5E8288E: clone (clone.S:95)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 26 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x45D4AE: tokio_reactor::CURRENT_REACTOR::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x449F3E: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==    by 0x47001B: _ZN3std9panicking3try7do_call17h0eb896e5d075b302E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x46AA7F: <F as alloc::boxed::FnBox<A>>::call_box (in /root/.cargo/bin/emmett)
==31479==    by 0x4A990D: call_once<(),()> (boxed.rs:759)
==31479==    by 0x4A990D: start_thread (thread.rs:14)
==31479==    by 0x4A990D: std::sys::unix::thread::Thread::new::thread_start (thread.rs:81)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 27 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x457A2E: tokio_timer::timer::handle::CURRENT_TIMER::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x449C58: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==    by 0x47001B: _ZN3std9panicking3try7do_call17h0eb896e5d075b302E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 28 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x45527E: tokio_trace_core::dispatcher::CURRENT_DISPATCH::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x44A234: <std::thread::local::LocalKey<T>>::try_with (in /root/.cargo/bin/emmett)
==31479==    by 0x4485E4: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 29 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x475482: rand::rngs::thread::thread_rng (in /root/.cargo/bin/emmett)
==31479==    by 0x46E94A: tokio_threadpool::pool::Pool::rand_usize::RNG::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x467EA4: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 30 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x5DA47C1: __cxa_thread_atexit_impl (cxa_thread_atexit_impl.c:106)
==31479==    by 0x47C0EE: crossbeam_epoch::default::HANDLE::__getit (in /root/.cargo/bin/emmett)
==31479==    by 0x473A13: <crossbeam_deque::Stealer<T>>::steal_batch_and_pop (in /root/.cargo/bin/emmett)
==31479==    by 0x467F65: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 32 bytes in 1 blocks are still reachable in loss record 31 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x2049F9: emmett::pipeline::outputs::OutputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x1777B2: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 32 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x496505: alloc (alloc.rs:75)
==31479==    by 0x496505: exchange_malloc (alloc.rs:185)
==31479==    by 0x496505: new<()> (mutex.rs:170)
==31479==    by 0x496505: std::thread::Thread::new (mod.rs:1122)
==31479==    by 0x4A2B0E: std::rt::lang_start_internal (rt.rs:40)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 33 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4821E9: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47F5A0: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 34 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x469211: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x471AFF: tokio_threadpool::shutdown::ShutdownTrigger::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B092: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 35 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x496505: alloc (alloc.rs:75)
==31479==    by 0x496505: exchange_malloc (alloc.rs:185)
==31479==    by 0x496505: new<()> (mutex.rs:170)
==31479==    by 0x496505: std::thread::Thread::new (mod.rs:1122)
==31479==    by 0x469EBC: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 36 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x469EE1: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 37 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x45E944: std::sync::once::Once::call_once::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x49DFB5: std::sync::once::Once::call_inner (once.rs:387)
==31479==    by 0x462FC1: tokio_reactor::sharded_rwlock::REGISTRATION::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x462C29: <tokio_reactor::sharded_rwlock::RwLock<T>>::read (in /root/.cargo/bin/emmett)
==31479==    by 0x45D353: <tokio_reactor::Inner as core::ops::drop::Drop>::drop (in /root/.cargo/bin/emmett)
==31479==    by 0x44D56C: <alloc::sync::Arc<T>>::drop_slow (in /root/.cargo/bin/emmett)
==31479==    by 0x44C70E: tokio::runtime::threadpool::Runtime::shutdown_on_idle (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85E7: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 38 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1A99F9: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1FFA5C: futures::task_impl::std::CURRENT_THREAD_NOTIFY::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x167621: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x205BC7: tokio_executor::enter::Enter::block_on (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85F2: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 39 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F26C2: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF175: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 40 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1A9AC1: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1F2740: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF175: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 41 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1A9BF1: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1F0D36: <futures::sync::mpsc::Sender<T> as core::clone::Clone>::clone (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF35C: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 42 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F26C2: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 43 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1A9AC1: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1F2740: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 40 bytes in 1 blocks are still reachable in loss record 44 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1A9BF1: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1F288C: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 44 bytes in 1 blocks are still reachable in loss record 45 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x203D67: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 46 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x496578: alloc (alloc.rs:75)
==31479==    by 0x496578: exchange_malloc (alloc.rs:185)
==31479==    by 0x496578: new (condvar.rs:131)
==31479==    by 0x496578: std::thread::Thread::new (mod.rs:1123)
==31479==    by 0x4A2B0E: std::rt::lang_start_internal (rt.rs:40)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 47 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x49DAB7: alloc (alloc.rs:75)
==31479==    by 0x49DAB7: exchange_malloc (alloc.rs:185)
==31479==    by 0x49DAB7: std::sync::condvar::Condvar::new (condvar.rs:131)
==31479==    by 0x47F5AB: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 48 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x46B0A2: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 49 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x496578: alloc (alloc.rs:75)
==31479==    by 0x496578: exchange_malloc (alloc.rs:185)
==31479==    by 0x496578: new (condvar.rs:131)
==31479==    by 0x496578: std::thread::Thread::new (mod.rs:1123)
==31479==    by 0x469EBC: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 50 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x469F44: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 48 bytes in 1 blocks are still reachable in loss record 51 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x49DAB7: alloc (alloc.rs:75)
==31479==    by 0x49DAB7: exchange_malloc (alloc.rs:185)
==31479==    by 0x49DAB7: std::sync::condvar::Condvar::new (condvar.rs:131)
==31479==    by 0x1FFA67: futures::task_impl::std::CURRENT_THREAD_NOTIFY::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x167621: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x205BC7: tokio_executor::enter::Enter::block_on (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85F2: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 56 bytes in 1 blocks are still reachable in loss record 52 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1FFA8A: futures::task_impl::std::CURRENT_THREAD_NOTIFY::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x167621: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x205BC7: tokio_executor::enter::Enter::block_on (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85F2: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 53 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47F312: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 54 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47F390: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 55 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47F408: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 56 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47F517: mio::poll::Poll::new (in /root/.cargo/bin/emmett)
==31479==    by 0x45B24E: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 57 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x480704: mio::poll::Registration::new2 (in /root/.cargo/bin/emmett)
==31479==    by 0x45B2A3: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 64 bytes in 1 blocks are still reachable in loss record 58 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x45D543: <alloc::raw_vec::RawVec<T, A>>::reserve (in /root/.cargo/bin/emmett)
==31479==    by 0x45B445: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 72 bytes in 1 blocks are still reachable in loss record 59 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x45480D: <tokio_timer::timer::Timer<T, N>>::new_with_now (in /root/.cargo/bin/emmett)
==31479==    by 0x452936: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 80 bytes in 1 blocks are still reachable in loss record 60 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4965C6: alloc (alloc.rs:75)
==31479==    by 0x4965C6: exchange_malloc (alloc.rs:185)
==31479==    by 0x4965C6: new<std::thread::Inner> (sync.rs:288)
==31479==    by 0x4965C6: std::thread::Thread::new (mod.rs:1118)
==31479==    by 0x4A2B0E: std::rt::lang_start_internal (rt.rs:40)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 80 bytes in 1 blocks are still reachable in loss record 61 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4965C6: alloc (alloc.rs:75)
==31479==    by 0x4965C6: exchange_malloc (alloc.rs:185)
==31479==    by 0x4965C6: new<std::thread::Inner> (sync.rs:288)
==31479==    by 0x4965C6: std::thread::Thread::new (mod.rs:1118)
==31479==    by 0x469EBC: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 96 bytes in 1 blocks are still reachable in loss record 62 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x452F0E: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 96 bytes in 1 blocks are still reachable in loss record 63 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x453675: tokio_threadpool::builder::Builder::custom_park::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x46AE22: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 96 bytes in 1 blocks are still reachable in loss record 64 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x46B4CC: tokio_threadpool::task::blocking::Blocking::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46D836: tokio_threadpool::pool::Pool::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B261: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 96 bytes in 1 blocks are still reachable in loss record 65 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x204927: emmett::pipeline::outputs::OutputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x1777B2: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 66 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F0D46: <futures::sync::mpsc::Sender<T> as core::clone::Clone>::clone (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF35C: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 67 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47185B: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x4716ED: <tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x47D5F0: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x47D1FC: <tokio_executor::global::DefaultExecutor as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF624: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 68 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F289C: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 69 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47185B: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x4716ED: <tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x47D5F0: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x47D1FC: <tokio_executor::global::DefaultExecutor as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1E1E9B: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 70 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47185B: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x4716ED: <tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x47D5F0: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x47D1FC: <tokio_executor::global::DefaultExecutor as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x204977: emmett::pipeline::outputs::OutputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x1777B2: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 112 bytes in 1 blocks are still reachable in loss record 71 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47185B: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x4716ED: <tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x47D5F0: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x47D1FC: <tokio_executor::global::DefaultExecutor as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x204A2A: emmett::pipeline::outputs::OutputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x1777B2: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 120 bytes in 1 blocks are still reachable in loss record 72 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x471B0F: tokio_threadpool::shutdown::ShutdownTrigger::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B092: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 160 bytes in 1 blocks are still reachable in loss record 73 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x45B55A: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 176 bytes in 1 blocks are still reachable in loss record 74 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F27B7: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1AF175: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 176 bytes in 1 blocks are still reachable in loss record 75 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1F27B7: futures::sync::mpsc::channel (in /root/.cargo/bin/emmett)
==31479==    by 0x1E06F4: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==
==31479== 184 bytes in 1 blocks are still reachable in loss record 76 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x45B3C6: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 192 bytes in 1 blocks are still reachable in loss record 77 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x473835: <crossbeam_deque::Worker<T>>::new_fifo (in /root/.cargo/bin/emmett)
==31479==    by 0x46C784: tokio_threadpool::worker::entry::WorkerEntry::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46AE51: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 192 bytes in 1 blocks are still reachable in loss record 78 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x46AFDA: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 256 bytes in 1 blocks are still reachable in loss record 79 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x20443E: emmett::pipeline::outputs::OutputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x1777B2: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==
==31479== 288 bytes in 1 blocks are possibly lost in loss record 80 of 97
==31479==    at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x40134A6: allocate_dtv (dl-tls.c:286)
==31479==    by 0x40134A6: _dl_allocate_tls (dl-tls.c:530)
==31479==    by 0x5932227: allocate_stack (allocatestack.c:627)
==31479==    by 0x5932227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644)
==31479==    by 0x4A95A1: std::sys::unix::thread::Thread::new (thread.rs:69)
==31479==    by 0x469F7E: std::thread::Builder::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x46E512: tokio_threadpool::pool::Pool::spawn_thread (in /root/.cargo/bin/emmett)
==31479==    by 0x46E90D: tokio_threadpool::pool::Pool::signal_work (in /root/.cargo/bin/emmett)
==31479==    by 0x471932: <&'a tokio_threadpool::sender::Sender as tokio_executor::executor::Executor>::spawn (in /root/.cargo/bin/emmett)
==31479==    by 0x1D8593: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 320 bytes in 1 blocks are still reachable in loss record 81 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x47BDF7: crossbeam_epoch::collector::Collector::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47BC4F: std::sync::once::Once::call_once::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x49DFB5: std::sync::once::Once::call_inner (once.rs:387)
==31479==    by 0x47C087: <crossbeam_epoch::default::COLLECTOR as core::ops::deref::Deref>::deref (in /root/.cargo/bin/emmett)
==31479==    by 0x473A7F: <crossbeam_deque::Stealer<T>>::steal_batch_and_pop (in /root/.cargo/bin/emmett)
==31479==    by 0x467F65: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 320 bytes in 1 blocks are still reachable in loss record 82 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x457846: tokio_timer::interval::Interval::new_interval (in /root/.cargo/bin/emmett)
==31479==    by 0x203805: <emmett::pipeline::inputs::http_poller::HttpPoller as core::convert::TryFrom<toml::value::Value>>::try_from (in /root/.cargo/bin/emmett)
==31479==    by 0x178989: <toml::value::Value as emmett::pipeline::InputPlugin>::to_input (in /root/.cargo/bin/emmett)
==31479==    by 0x22312A: emmett::pipeline::Pipeline::from_toml (in /root/.cargo/bin/emmett)
==31479==    by 0x17775B: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 384 bytes in 1 blocks are still reachable in loss record 83 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1E1E6E: emmett::pipeline::filters::FilterBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177794: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 448 bytes in 1 blocks are still reachable in loss record 84 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x47256B: <T as core::convert::Into<U>>::into (in /root/.cargo/bin/emmett)
==31479==    by 0x46AF73: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 448 bytes in 1 blocks are still reachable in loss record 85 of 97
==31479==    at 0x4C31E76: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4C31F91: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4A1838: aligned_malloc (alloc.rs:84)
==31479==    by 0x4A1838: alloc (alloc.rs:19)
==31479==    by 0x4A1838: __rdl_alloc (alloc.rs:233)
==31479==    by 0x46B271: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 512 bytes in 1 blocks are still reachable in loss record 86 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47376E: <crossbeam_deque::Worker<T>>::new_fifo (in /root/.cargo/bin/emmett)
==31479==    by 0x46C784: tokio_threadpool::worker::entry::WorkerEntry::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46AE51: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 632 bytes in 1 blocks are still reachable in loss record 87 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x1AF5F7: emmett::pipeline::inputs::InputBlock::run (in /root/.cargo/bin/emmett)
==31479==    by 0x177776: <futures::future::lazy::Lazy<F, R> as futures::future::Future>::poll (in /root/.cargo/bin/emmett)
==31479==    by 0x46C1B1: futures::task_impl::std::set (in /root/.cargo/bin/emmett)
==31479==    by 0x46CCA5: <futures::task_impl::Spawn<T>>::poll_future_notify (in /root/.cargo/bin/emmett)
==31479==    by 0x470060: _ZN3std9panicking3try7do_call17h3cb87a494a60a504E.llvm.12291275167426552652 (in /root/.cargo/bin/emmett)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x47037F: tokio_threadpool::task::Task::run (in /root/.cargo/bin/emmett)
==31479==    by 0x468964: tokio_threadpool::worker::Worker::run_task (in /root/.cargo/bin/emmett)
==31479==    by 0x467E5D: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 768 bytes in 1 blocks are still reachable in loss record 88 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x463757: <std::collections::hash::table::RawTable<K, V>>::new_uninitialized_internal (in /root/.cargo/bin/emmett)
==31479==    by 0x45F08C: <std::collections::hash::map::HashMap<K, V, S>>::try_resize (in /root/.cargo/bin/emmett)
==31479==    by 0x45F547: <std::collections::hash::map::HashMap<K, V, S>>::insert (in /root/.cargo/bin/emmett)
==31479==    by 0x462F65: tokio_reactor::sharded_rwlock::REGISTRATION::__init (in /root/.cargo/bin/emmett)
==31479==    by 0x462C29: <tokio_reactor::sharded_rwlock::RwLock<T>>::read (in /root/.cargo/bin/emmett)
==31479==    by 0x45D353: <tokio_reactor::Inner as core::ops::drop::Drop>::drop (in /root/.cargo/bin/emmett)
==31479==    by 0x44D56C: <alloc::sync::Arc<T>>::drop_slow (in /root/.cargo/bin/emmett)
==31479==    by 0x44C70E: tokio::runtime::threadpool::Runtime::shutdown_on_idle (in /root/.cargo/bin/emmett)
==31479==    by 0x1D85E7: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==
==31479== 1,016 bytes in 1 blocks are still reachable in loss record 89 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x46AFA8: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== 2,080 bytes in 1 blocks are still reachable in loss record 90 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47C39C: <crossbeam_epoch::atomic::Owned<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47BD55: crossbeam_epoch::collector::Collector::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47BC4F: std::sync::once::Once::call_once::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x49DFB5: std::sync::once::Once::call_inner (once.rs:387)
==31479==    by 0x47C087: <crossbeam_epoch::default::COLLECTOR as core::ops::deref::Deref>::deref (in /root/.cargo/bin/emmett)
==31479==    by 0x473A7F: <crossbeam_deque::Stealer<T>>::steal_batch_and_pop (in /root/.cargo/bin/emmett)
==31479==    by 0x467F65: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==
==31479== 2,112 bytes in 1 blocks are still reachable in loss record 91 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47B5C1: crossbeam_epoch::internal::Local::register (in /root/.cargo/bin/emmett)
==31479==    by 0x473A88: <crossbeam_deque::Stealer<T>>::steal_batch_and_pop (in /root/.cargo/bin/emmett)
==31479==    by 0x467F65: tokio_threadpool::worker::Worker::run (in /root/.cargo/bin/emmett)
==31479==    by 0x4485F6: tokio_trace_core::dispatcher::with_default (in /root/.cargo/bin/emmett)
==31479==    by 0x449CE5: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x449BAD: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44A003: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x44BB36: tokio::runtime::threadpool::builder::Builder::build::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x470942: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x470A7D: <std::thread::local::LocalKey<T>>::with (in /root/.cargo/bin/emmett)
==31479==    by 0x472A70: std::sys_common::backtrace::__rust_begin_short_backtrace (in /root/.cargo/bin/emmett)
==31479==
==31479== 3,168 bytes in 1 blocks are still reachable in loss record 92 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x450B3A: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (in /root/.cargo/bin/emmett)
==31479==    by 0x450C88: <tokio_timer::wheel::Wheel<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x454853: <tokio_timer::timer::Timer<T, N>>::new_with_now (in /root/.cargo/bin/emmett)
==31479==    by 0x452936: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 4,040 bytes in 1 blocks are still reachable in loss record 93 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x4726DA: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (in /root/.cargo/bin/emmett)
==31479==    by 0x46D787: tokio_threadpool::pool::Pool::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B261: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==
==31479== 4,040 bytes in 101 blocks are still reachable in loss record 94 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47E439: <std::sync::mutex::Mutex<T>>::new (in /root/.cargo/bin/emmett)
==31479==    by 0x47DB2C: crossbeam_utils::sync::parker::Parker::new (in /root/.cargo/bin/emmett)
==31479==    by 0x472732: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (in /root/.cargo/bin/emmett)
==31479==    by 0x46D787: tokio_threadpool::pool::Pool::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B261: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 4,848 bytes in 101 blocks are still reachable in loss record 95 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x49DAB7: alloc (alloc.rs:75)
==31479==    by 0x49DAB7: exchange_malloc (alloc.rs:185)
==31479==    by 0x49DAB7: std::sync::condvar::Condvar::new (condvar.rs:131)
==31479==    by 0x47DB37: crossbeam_utils::sync::parker::Parker::new (in /root/.cargo/bin/emmett)
==31479==    by 0x472732: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (in /root/.cargo/bin/emmett)
==31479==    by 0x46D787: tokio_threadpool::pool::Pool::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B261: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==
==31479== 5,656 bytes in 101 blocks are still reachable in loss record 96 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x47DB5A: crossbeam_utils::sync::parker::Parker::new (in /root/.cargo/bin/emmett)
==31479==    by 0x472732: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (in /root/.cargo/bin/emmett)
==31479==    by 0x46D787: tokio_threadpool::pool::Pool::new (in /root/.cargo/bin/emmett)
==31479==    by 0x46B261: tokio_threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x453033: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==
==31479== 12,288 bytes in 1 blocks are still reachable in loss record 97 of 97
==31479==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31479==    by 0x48061D: mio::poll::Events::with_capacity (in /root/.cargo/bin/emmett)
==31479==    by 0x45B36D: tokio_reactor::Reactor::new (in /root/.cargo/bin/emmett)
==31479==    by 0x4527AD: tokio::runtime::threadpool::builder::Builder::build (in /root/.cargo/bin/emmett)
==31479==    by 0x44C5C4: tokio::runtime::threadpool::Runtime::new (in /root/.cargo/bin/emmett)
==31479==    by 0x1D84B6: tokio::runtime::threadpool::run (in /root/.cargo/bin/emmett)
==31479==    by 0x19114B: emmett::main (in /root/.cargo/bin/emmett)
==31479==    by 0x1D11E2: std::rt::lang_start::{{closure}} (in /root/.cargo/bin/emmett)
==31479==    by 0x4A1FE2: {{closure}} (rt.rs:49)
==31479==    by 0x4A1FE2: std::panicking::try::do_call (panicking.rs:297)
==31479==    by 0x4AA589: __rust_maybe_catch_panic (lib.rs:87)
==31479==    by 0x4A2BAC: try<i32,closure> (panicking.rs:276)
==31479==    by 0x4A2BAC: catch_unwind<closure,i32> (panic.rs:388)
==31479==    by 0x4A2BAC: std::rt::lang_start_internal (rt.rs:48)
==31479==    by 0x191181: main (in /root/.cargo/bin/emmett)
==31479==
==31479== LEAK SUMMARY:
==31479==    definitely lost: 0 bytes in 0 blocks
==31479==    indirectly lost: 0 bytes in 0 blocks
==31479==      possibly lost: 288 bytes in 1 blocks
==31479==    still reachable: 47,756 bytes in 396 blocks
==31479==         suppressed: 0 bytes in 0 blocks
==31479==
==31479== For counts of detected and suppressed errors, rerun with: -v
==31479== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
carllerche commented 5 years ago

Hi there,

A quick skim of the valgrind output makes me think it is a user error. The runtime handle is not being properly dropped when the process exits.

If you believe this is a bug in tokio, could you open a new issue providing a minimal repro of the leak.

carllerche commented 5 years ago

You could use tokio-signal to implement a handler that performs a clean shutdown.

kamek-pf commented 4 years ago

@andrewbanchich did you figure it out ? I'm also in a situation where a Tokio application using streams and mpsc channels appears to be leaking memory. Valgrind output looks similar to yours, I have no idea what I'm doing wrong.

carllerche commented 4 years ago

@kamek-pf Are you performing a clean shutdown? i.e. all tasks & the runtime need to be terminated before the process exits.

andrewbanchich commented 4 years ago

@kamek-pf No, I never figured it out. I refactored some stuff to look into some high CPU usage I was seeing and once that was solved, the noticeable memory leak was gone. I just don't know why.

carllerche commented 4 years ago

Another possibility is that a future waker leaked somehow which holds on to the runtime.

edit: it's a weak ref, so it shouldn't actually...

kamek-pf commented 4 years ago

@carllerche I'm not performing a clean shutdown. My use case is a stream processing service that's meant to stay up pretty much forever. Memory usage keeps increasing over time, about 1.5~2Mb every day according to the Kubernetes monitoring tool we're using.

It has a bunch of moving pieces, tungstenite for websockets (I also tried the websocket crate, same observations), both with and without openssl via native-tls, prost for protobuf deserialization and rust-rdkafka at the end of the pipeline. Obviously it's all async and Tokio drives everything.

I couldn't find anything in the issue trackers of these libraries, tried stripping every dependency one by one to no avail.

I'll try to investigate more tomorrow but I'm running out of ideas.

andrewbanchich commented 4 years ago

My use case is a stream processing service that's meant to stay up pretty much forever.

Interesting, that's what my program does too.

I haven't tested it running for more than an hour or so, so maybe the leak is still there but just too small to notice over an hour.

kamek-pf commented 4 years ago

maybe the leak is still there but just too small to notice over an hour

Maybe, this is what the past three days look like for me (since the last deployment): image

The tricky part is, it takes several hours of uptime before I can get meaningful results

loriopatrick commented 4 years ago

@kamek-pf Did you ever find the root cause? I'm in a similar case myself.

kamek-pf commented 4 years ago

Nope. This projects runs on tokio 0.1 though, I'm waiting for the ecosystem to catch up and I'll update to tokio 0.2 and async/await. We'll see if the problem persists.

Are you experiencing this with tokio 0.2 ?

loriopatrick commented 4 years ago

Yes, currently experiencing with tokio 0.2.6. I've been probing the application for the past week trying to find a potential memory leak in my code without luck. Our use of tokio is quite light so I'm going to replace our use of TCP reads and writes with a custom epoll implementation, hopefully that works :crossed_fingers:.

kamek-pf commented 4 years ago

Well, that's disappointing :( I guess you could also try a different runtime if you don't rely on Tokio much. async-std could be a good candidate

carllerche commented 4 years ago

If the leak has persisted across the versions it is highly unlikely the bug is in Tokio as the implementations have changed drastically since the original report. We are also not aware of any leak.

If you think it is a leak in tokio, we would need a repro of some sort. I would also suggest running a valgrind report after doing a clean shutdown. If a clean shutdown is not performed, valgrind will report all running tasks as leaks.

loriopatrick commented 4 years ago

I'm not detecting any memory leaks after cleaning up all the resources on exit. My main suspect is user error (I'm doing something wrong) however after reading through the documentation and implementations, I can't narrow it down. It seems like there's a vector somewhere that is growing indefinitely or somehow the pinned futures are sticking around (nothing custom, just using the futures library). Some combination of something is causing me problems. Maybe later I'll find the time to really narrow it down, for now, I just need to fix the problem.

I'll share if my custom epoll solution fixes the problem. If it doesn't, I'll just keep replacing components until I hopefully find out where it is. Memory profilers haven't been much help. Time to brute force.

carllerche commented 4 years ago

If you know it is a vector, you should be able to track down the cause. Can you get the backtrace where the vector is allocated?

loriopatrick commented 4 years ago

Unfortunately, I haven't been able to pin it down. I've tried to hunt it down with a few different tools.

With multiple layers of abstraction, my stuff -> Lines -> AsyncReader -> Tokio TcpStream -> mio things get harder to find. That's one possible stack trace that could be responsible. I've read through the code and there isn't anything obvious. It's still likely to be my code, however I log the size of every dynamically sized data structure and it doesn't correlate. I also don't see any circular references but they could be hidden somewhere behind all the async await usage.

Blaming a vector given what I know is more of a gut feeling right now.

krzysztofgal commented 4 years ago

I have same issue with constantly growing memory usage on new connections (despite closing current connections) with async_tungstenite and tokio runtime. For now I found that using tokio::time::interval is causing that behavior. When using async_std runtime with their task::sleep, memory usage constantly stays at same (max used connections) level.

I tried running future in current task, spawning new task, calling drop on interval - always same result. tokio 2.10

kamek-pf commented 4 years ago

@krzysztofgal have you noticed similar behavior with other time functions, like timeout ?

I'm also using a few intervals, and the problem didn't go away after porting the code base to tokio 0.2.

@carllerche are you aware of anything in the interval implementation that might cause this ? Also, semi-related, I'm using a bunch of unbounded channels, how does the internal buffer work ? Is it supposed to shrink or can it only grow ?

I'll try valgrind and a clean shutdown again on the new implementation tomorrow.

carllerche commented 4 years ago

Symptoms of memory leaks can roughly be attributed to one of 3 cases:

To identify an actual memory leak, one must run the application under valgrind and then perform a clean shutdown. If a clean shutdown is not performed, then valgrind will report "leaked" memory simply because the cleanup steps were not able to free the memory.

To identify leaked tasks is a bit harder right now as Tokio itself doesn't provide the necessary instrumentation yet. THe best strategy is to include some form of counter in your tasks before spawning and track spawns & drops.

To check if the allocator is holding memory, switch to jemalloc and tune it to aggressively release memory back to the OS.