I suspect the usage of Flow, which I may or may not have built with the right debugging setup (thought I would dive in to this, but after this morning’s exercise I’ll leave it to the Pros ) :
Workload: ~ 13000 new connections w/ getDatabases
valgrind --leak-check=yes build/bin/fdbdoc -l 127.0.0.1:27017 -C /etc/foundationdb/fdb.cluster
==6920== Memcheck, a memory error detector
==6920== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6920== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==6920== Command: build/bin/fdbdoc -l 127.0.0.1:27017 -C /etc/foundationdb/fdb.cluster
==6920==
0FdbDocServer (1.7): listening on 127.0.0.1:27017
^C==6920==
==6920== Process terminating with default action of signal 2 (SIGINT)
==6920== at 0x6302BB7: epoll_wait (epoll_wait.c:30)
==6920== by 0x6D697F: boost::asio::detail::epoll_reactor::run(long, boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>&) (epoll_reactor.ipp:471)
==6920== by 0x6D79EB: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:385)
==6920== by 0x6D9D59: boost::asio::detail::scheduler::run_one(boost::system::error_code&) (scheduler.ipp:175)
==6920== by 0x6D1A7B: run_one (io_context.ipp:77)
==6920== by 0x6D1A7B: N2::ASIOReactor::sleepAndReact(double) (Net2.actor.cpp:994)
==6920== by 0x6D2FA3: N2::Net2::run() (Net2.actor.cpp:608)
==6920== by 0x450873: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920==
==6920== HEAP SUMMARY:
==6920== in use at exit: 1,305,768 bytes in 13,578 blocks
==6920== total heap usage: 904,854 allocs, 891,276 frees, 42,884,036 bytes allocated
==6920==
==6920== 56 bytes in 1 blocks are definitely lost in loss record 1,908 of 2,903
==6920== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6920== by 0x69C75D: TraceEvent::setNetworkThread() (Trace.cpp:990)
==6920== by 0x450304: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920==
==6920== 304 bytes in 1 blocks are possibly lost in loss record 2,759 of 2,903
==6920== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6920== by 0x40134A6: allocate_dtv (dl-tls.c:286)
==6920== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530)
==6920== by 0x4E44227: allocate_stack (allocatestack.c:627)
==6920== by 0x4E44227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644)
==6920== by 0x67C9C7: startThread(void* (*)(void*), void*) (Platform.cpp:2186)
==6920== by 0x6F4D90: ThreadPool::addThread(IThreadPoolReceiver*) (vector.tcc:98)
==6920== by 0x6B78C3: TraceLog::open(std::string const&, std::string const&, std::string, std::string const&, unsigned long, unsigned long, Optional<NetworkAddress>) (Trace.cpp:306)
==6920== by 0x6A63E9: openTraceFile(NetworkAddress const&, unsigned long, unsigned long, std::string, std::string, std::string) (Trace.cpp:632)
==6920== by 0x45039A: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920==
==6920== 304 bytes in 1 blocks are possibly lost in loss record 2,760 of 2,903
==6920== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6920== by 0x40134A6: allocate_dtv (dl-tls.c:286)
==6920== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530)
==6920== by 0x4E44227: allocate_stack (allocatestack.c:627)
==6920== by 0x4E44227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644)
==6920== by 0x67E5EC: startThread (Platform.cpp:2186)
==6920== by 0x67E5EC: setupSlowTaskProfiler() (Platform.cpp:2840)
==6920== by 0x454610: (anonymous namespace)::SetupActorState<(anonymous namespace)::SetupActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x44E356: (anonymous namespace)::SetupActor::SetupActor(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x44E3DF: setup(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x4507C3: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920==
==6920== 304 bytes in 1 blocks are possibly lost in loss record 2,761 of 2,903
==6920== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6920== by 0x40134A6: allocate_dtv (dl-tls.c:286)
==6920== by 0x40134A6: _dl_allocate_tls (dl-tls.c:530)
==6920== by 0x4E44227: allocate_stack (allocatestack.c:627)
==6920== by 0x4E44227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644)
==6920== by 0x67C9C7: startThread(void* (*)(void*), void*) (Platform.cpp:2186)
==6920== by 0x45462D: (anonymous namespace)::SetupActorState<(anonymous namespace)::SetupActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x44E356: (anonymous namespace)::SetupActor::SetupActor(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x44E3DF: setup(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920== by 0x4507C3: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==6920==
==6920== LEAK SUMMARY:
==6920== definitely lost: 56 bytes in 1 blocks
==6920== indirectly lost: 0 bytes in 0 blocks
==6920== possibly lost: 912 bytes in 3 blocks
==6920== still reachable: 1,304,800 bytes in 13,574 blocks
==6920== of which reachable via heuristic:
==6920== stdstring : 87,430 bytes in 1,691 blocks
==6920== suppressed: 0 bytes in 0 blocks
==6920== Reachable blocks (those to which a pointer was found) are not shown.
==6920== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==6920==
==6920== For counts of detected and suppressed errors, rerun with: -v
==6920== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
w/ full|all
==9090== 36,480 bytes in 760 blocks are still reachable in loss record 2,934 of 2,942
==9090== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x465BE0: ExtConnection::ExtConnection(Reference<DocumentLayer>, Reference<BufferedConnection>, long) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x45226A: (anonymous namespace)::ExtServerConnectionActorState<(anonymous namespace)::ExtServerConnectionActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44D106: (anonymous namespace)::ExtServerConnectionActor::ExtServerConnectionActor(Reference<DocumentLayer> const&, Reference<BufferedConnection> const&, long const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44D213: extServerConnection(Reference<DocumentLayer> const&, Reference<BufferedConnection> const&, long const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x45925E: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1when1(Reference<IConnection> const&, int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x462F05: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_callback_fire(ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >*, Reference<IConnection>) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x460115: ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >::fire(Reference<IConnection> const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6E1173: finishSendAndDelPromiseRef (flow.h:331)
==9090== by 0x6E1173: N2::Listener::DoAcceptActorState<N2::Listener::DoAcceptActor>::a_body1cont2(Void const&, int) (Net2.actor.g.cpp:759)
==9090== by 0x6E1D43: a_body1when1 (Net2.actor.g.cpp:766)
==9090== by 0x6E1D43: a_callback_fire (Net2.actor.g.cpp:780)
==9090== by 0x6E1D43: ActorCallback<N2::Listener::DoAcceptActor, 0, Void>::fire(Void const&) (flow.h:850)
==9090== by 0x421502: void SAV<Void>::send<Void>(Void&&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6DE09E: send<Void> (flow.h:630)
==9090== by 0x6DE09E: N2::BindPromise::operator()(boost::system::error_code const&, unsigned long) (Net2.actor.cpp:259)
==9090==
==9090== 40,000 bytes in 1 blocks are still reachable in loss record 2,935 of 2,942
==9090== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x54C0657: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x522E4D9: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x52084B4: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5208CF9: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x52B565A: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x52B58F8: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x522796F: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5482949: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x51864CD: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x52A934B: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x51596F5: ??? (in /usr/lib/libfdb_c.so)
==9090==
==9090== 65,556 bytes in 1 blocks are still reachable in loss record 2,936 of 2,942
==9090== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x54C0657: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x54C06E9: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x513FED7: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5385588: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x538707C: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x53924FA: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5392714: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x538266F: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x548AFBB: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x548BB89: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x522796F: ??? (in /usr/lib/libfdb_c.so)
==9090==
==9090== 65,556 bytes in 1 blocks are still reachable in loss record 2,937 of 2,942
==9090== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x54C0657: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x54C06E9: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x513FED7: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5385588: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5386DE4: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x522796F: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x5482949: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x51864CD: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x52A934B: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x51596F5: ??? (in /usr/lib/libfdb_c.so)
==9090== by 0x513CCB8: fdb_run_network (in /usr/lib/libfdb_c.so)
==9090==
==9090== 66,880 bytes in 760 blocks are still reachable in loss record 2,938 of 2,942
==9090== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x6E1B76: DoAcceptActorState (Net2.actor.cpp:463)
==9090== by 0x6E1B76: DoAcceptActor (Net2.actor.g.cpp:823)
==9090== by 0x6E1B76: doAccept (Net2.actor.cpp:461)
==9090== by 0x6E1B76: N2::Listener::accept() (Net2.actor.cpp:455)
==9090== by 0x456F96: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x45549D: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopHead1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x45A053: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1cont1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x4592A6: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1when1(Reference<IConnection> const&, int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x462F05: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_callback_fire(ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >*, Reference<IConnection>) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x460115: ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >::fire(Reference<IConnection> const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6E1173: finishSendAndDelPromiseRef (flow.h:331)
==9090== by 0x6E1173: N2::Listener::DoAcceptActorState<N2::Listener::DoAcceptActor>::a_body1cont2(Void const&, int) (Net2.actor.g.cpp:759)
==9090== by 0x6E1D43: a_body1when1 (Net2.actor.g.cpp:766)
==9090== by 0x6E1D43: a_callback_fire (Net2.actor.g.cpp:780)
==9090== by 0x6E1D43: ActorCallback<N2::Listener::DoAcceptActor, 0, Void>::fire(Void const&) (flow.h:850)
==9090== by 0x421502: void SAV<Void>::send<Void>(Void&&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6DE09E: send<Void> (flow.h:630)
==9090== by 0x6DE09E: N2::BindPromise::operator()(boost::system::error_code const&, unsigned long) (Net2.actor.cpp:259)
==9090==
==9090== 80,000 bytes in 1 blocks are still reachable in loss record 2,939 of 2,942
==9090== at 0x4C3089F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x6CCF27: initProfiling() (Net2.actor.cpp:81)
==9090== by 0x67E583: setupSlowTaskProfiler() (Platform.cpp:2828)
==9090== by 0x454610: (anonymous namespace)::SetupActorState<(anonymous namespace)::SetupActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44E356: (anonymous namespace)::SetupActor::SetupActor(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44E3DF: setup(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x4507C3: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090==
==9090== 80,000 bytes in 1 blocks are still reachable in loss record 2,940 of 2,942
==9090== at 0x4C3089F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x6CCF43: initProfiling() (Net2.actor.cpp:82)
==9090== by 0x67E583: setupSlowTaskProfiler() (Platform.cpp:2828)
==9090== by 0x454610: (anonymous namespace)::SetupActorState<(anonymous namespace)::SetupActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44E356: (anonymous namespace)::SetupActor::SetupActor(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44E3DF: setup(NetworkAddress const&, Optional<unsigned short> const&, std::string const&, ConnectionOptions const&, char const* const&, std::string const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<FDBNetworkOption, Standalone<StringRef> >, std::allocator<std::pair<FDBNetworkOption, Standalone<StringRef> > > > const&, std::string const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x4507C3: main (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090==
==9090== 93,568 bytes in 688 blocks are still reachable in loss record 2,941 of 2,942
==9090== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x4335B2: BufferedConnection::BufferedConnection(Reference<IConnection>) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x459227: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1when1(Reference<IConnection> const&, int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x462F05: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_callback_fire(ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >*, Reference<IConnection>) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x460115: ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >::fire(Reference<IConnection> const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6E1173: finishSendAndDelPromiseRef (flow.h:331)
==9090== by 0x6E1173: N2::Listener::DoAcceptActorState<N2::Listener::DoAcceptActor>::a_body1cont2(Void const&, int) (Net2.actor.g.cpp:759)
==9090== by 0x6E1D43: a_body1when1 (Net2.actor.g.cpp:766)
==9090== by 0x6E1D43: a_callback_fire (Net2.actor.g.cpp:780)
==9090== by 0x6E1D43: ActorCallback<N2::Listener::DoAcceptActor, 0, Void>::fire(Void const&) (flow.h:850)
==9090== by 0x421502: void SAV<Void>::send<Void>(Void&&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6DE09E: send<Void> (flow.h:630)
==9090== by 0x6DE09E: N2::BindPromise::operator()(boost::system::error_code const&, unsigned long) (Net2.actor.cpp:259)
==9090== by 0x6DE655: operator() (bind_handler.hpp:65)
==9090== by 0x6DE655: asio_handler_invoke<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code> > (handler_invoke_hook.hpp:69)
==9090== by 0x6DE655: invoke<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code>, N2::BindPromise> (handler_invoke_helpers.hpp:37)
==9090== by 0x6DE655: complete<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code> > (handler_work.hpp:82)
==9090== by 0x6DE655: boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp>, boost::asio::ip::tcp, N2::BindPromise>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (reactive_socket_accept_op.hpp:137)
==9090== by 0x6DA22B: complete (scheduler_operation.hpp:40)
==9090== by 0x6DA22B: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (epoll_reactor.ipp:776)
==9090== by 0x6D7B78: complete (scheduler_operation.hpp:40)
==9090== by 0x6D7B78: boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) (scheduler.ipp:401)
==9090==
==9090== 115,520 bytes in 760 blocks are still reachable in loss record 2,942 of 2,942
==9090== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9090== by 0x45224B: (anonymous namespace)::ExtServerConnectionActorState<(anonymous namespace)::ExtServerConnectionActor>::a_body1(int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44D106: (anonymous namespace)::ExtServerConnectionActor::ExtServerConnectionActor(Reference<DocumentLayer> const&, Reference<BufferedConnection> const&, long const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x44D213: extServerConnection(Reference<DocumentLayer> const&, Reference<BufferedConnection> const&, long const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x45925E: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_body1loopBody1when1(Reference<IConnection> const&, int) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x462F05: (anonymous namespace)::ExtServerActorState<(anonymous namespace)::ExtServerActor>::a_callback_fire(ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >*, Reference<IConnection>) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x460115: ActorCallback<(anonymous namespace)::ExtServerActor, 0, Reference<IConnection> >::fire(Reference<IConnection> const&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6E1173: finishSendAndDelPromiseRef (flow.h:331)
==9090== by 0x6E1173: N2::Listener::DoAcceptActorState<N2::Listener::DoAcceptActor>::a_body1cont2(Void const&, int) (Net2.actor.g.cpp:759)
==9090== by 0x6E1D43: a_body1when1 (Net2.actor.g.cpp:766)
==9090== by 0x6E1D43: a_callback_fire (Net2.actor.g.cpp:780)
==9090== by 0x6E1D43: ActorCallback<N2::Listener::DoAcceptActor, 0, Void>::fire(Void const&) (flow.h:850)
==9090== by 0x421502: void SAV<Void>::send<Void>(Void&&) (in /home/yennie/repos/fdb-document-layer/build/bin/fdbdoc)
==9090== by 0x6DE09E: send<Void> (flow.h:630)
==9090== by 0x6DE09E: N2::BindPromise::operator()(boost::system::error_code const&, unsigned long) (Net2.actor.cpp:259)
==9090== by 0x6DE655: operator() (bind_handler.hpp:65)
==9090== by 0x6DE655: asio_handler_invoke<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code> > (handler_invoke_hook.hpp:69)
==9090== by 0x6DE655: invoke<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code>, N2::BindPromise> (handler_invoke_helpers.hpp:37)
==9090== by 0x6DE655: complete<boost::asio::detail::binder1<N2::BindPromise, boost::system::error_code> > (handler_work.hpp:82)
==9090== by 0x6DE655: boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp>, boost::asio::ip::tcp, N2::BindPromise>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (reactive_socket_accept_op.hpp:137)
==9090==
==9090== LEAK SUMMARY:
==9090== definitely lost: 56 bytes in 1 blocks
==9090== indirectly lost: 0 bytes in 0 blocks
==9090== possibly lost: 912 bytes in 3 blocks
==9090== still reachable: 1,054,730 bytes in 10,667 blocks
==9090== of which reachable via heuristic:
==9090== stdstring : 81,756 bytes in 1,503 blocks
==9090== suppressed: 0 bytes in 0 blocks
==9090==
==9090== For counts of detected and suppressed errors, rerun with: -v
==9090== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)