[ 
https://issues.apache.org/jira/browse/MESOS-9024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16532096#comment-16532096
 ] 

Benjamin Mahler edited comment on MESOS-9024 at 7/4/18 1:30 AM:
----------------------------------------------------------------

{noformat}
commit ab10f8310a735c3119f22dd3d9e636dc9cc38562
Author: Benjamin Mahler <bmah...@apache.org>
Date:   Tue Jul 3 16:54:11 2018 -0700

    Reduced likelihood of a stack overflow in libprocess socket recv path.

    Currently, the socket recv path is implemented using an asynchronous
    loop with callbacks. Without using `process::loop`, this pattern is
    prone to a stack overflow in the case that all asynchronous calls
    complete synchronously. This is possible with sockets if the socket
    is always ready for reading. The crash has been reported in MESOS-9024,
    so the stack overflow has been encountered in practice.

    This patch updates the recv path to leverage `process::loop`, which
    is supposed to prevent stack overflows in asynchronous loops. However,
    it is still possible for `process::loop` to stack overflow due to
    MESOS-8852. In practice, I expect that even without MESOS-8852 fixed,
    users won't see any stack overflows in the recv path.

    Review: https://reviews.apache.org/r/67824
{noformat}

[~awruef] this has been cherry-picked and will land in 1.6.1 and 1.5.2, please 
let me know if you still see an issue.


was (Author: bmahler):
{noformat}
commit ab10f8310a735c3119f22dd3d9e636dc9cc38562
Author: Benjamin Mahler <bmah...@apache.org>
Date:   Tue Jul 3 16:54:11 2018 -0700

    Reduced likelihood of a stack overflow in libprocess socket recv path.

    Currently, the socket recv path is implemented using an asynchronous
    loop with callbacks. Without using `process::loop`, this pattern is
    prone to a stack overflow in the case that all asynchronous calls
    complete synchronously. This is possible with sockets if the socket
    is always ready for reading. The crash has been reported in MESOS-9024,
    so the stack overflow has been encountered in practice.

    This patch updates the recv path to leverage `process::loop`, which
    is supposed to prevent stack overflows in asynchronous loops. However,
    it is still possible for `process::loop` to stack overflow due to
    MESOS-8852. In practice, I expect that even without MESOS-8852 fixed,
    users won't see any stack overflows in the recv path.

    Review: https://reviews.apache.org/r/67824
{noformat}

[~awruef] this has been cherry-picked and will land in 1.6.1 and 1.5.2, please 
let me know if you are still an issue.

> Mesos master segfaults with stack overflow under load.
> ------------------------------------------------------
>
>                 Key: MESOS-9024
>                 URL: https://issues.apache.org/jira/browse/MESOS-9024
>             Project: Mesos
>          Issue Type: Bug
>          Components: libprocess, master
>    Affects Versions: 1.6.0
>         Environment: Ubuntu 16.04.4 
>            Reporter: Andrew Ruef
>            Assignee: Benjamin Mahler
>            Priority: Blocker
>             Fix For: 1.5.2, 1.6.1
>
>         Attachments: stack.txt.gz
>
>
> Running mesos in non-HA mode on a small cluster under load, the master 
> reliably segfaults due to some state it has worked itself into. The segfault 
> appears to be a stack overflow, at least, the call stack has 72662 elements 
> in it in the crashing thread. The root of the stack appears to be in 
> libprocess. 
> I've attached a gzip compressed stack backtrace since the uncompressed stack 
> backtrace is too large to attach to this issue. This happens to me fairly 
> reliably when doing jobs, but it can take many hours or days for mesos to 
> work itself back into this state. 
> I think the below is the beginning of the repeating part of the stack trace: 
> {noformat}
> #72565 0x00007fd748882c32 in lambda::CallableOnce<void 
> (process::Future<unsigned long> const&)>::operator()(process::Future<unsigned 
> long> const&) && () at 
> ../../mesos-1.6.0/3rdparty/stout/include/stout/lambda.hpp:443}}
> {{#72566 0x00007fd7488776d2 in process::Future<unsigned 
> long>::onAny(lambda::CallableOnce<void (process::Future<unsigned long> 
> const&)>&&) const () at 
> ../../mesos-1.6.0/3rdparty/libprocess/include/process/future.hpp:1461}}
> {{#72567 0x00007fd74a81b35c in process::Future<unsigned 
> long>::onAny<std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/include/process/future.hpp:312}}
> {{#72568 0x00007fd74a80a5b3 in process::Future<unsigned 
> long>::onAny<std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)> >(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&) const () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/include/process/future.hpp:382}}
> {{#72569 0x00007fd74a7cff72 in process::internal::decode_recv () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/src/process.cpp:849}}
> {{#72570 0x00007fd74a83d103 in std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>::__call<void, process::Future<unsigned 
> long> const&, 0ul, 1ul, 2ul, 3ul, 4ul>(std::tuple<process::Future<unsigned 
> long> const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) () at 
> /usr/include/c++/5/functional:1074}}
> {{#72571 0x00007fd74a82afd2 in std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>::operator()<process::Future<unsigned 
> long> const&, void>(process::Future<unsigned long> const&) () at 
> /usr/include/c++/5/functional:1133}}
> {{#72572 0x00007fd74a81b23c in process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}::operator()(std::_Bind<void (*(std::_Placeholder<1>, char*, 
> unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> const&) 
> const () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/include/process/future.hpp:309}}
> {{#72573 0x00007fd74a896bbf in cpp17::invoke<process::Future<unsigned long> 
> const& process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, process::Future<unsigned long> 
> const&>(std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, (process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}&&)...) () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/cpp17.hpp:42}}
> {{#72574 0x00007fd74a891cfe in 
> lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> 
> >::invoke_expand<\{lambda(std::_Bind<void (*(std::_Placeholder<1>, char*, 
> unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::tuple<std::_Bind<void (*(std::_Placeholder<1>, char*, 
> unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> >, 
> lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> 
> >::invoke_expand<process::Future<unsigned long> const&>, 0ul, 
> 1ul>(std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, 
> lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> 
> >::invoke_expand<process::Future<unsigned long> const&>&&, 
> cpp14::integer_sequence<unsigned long, 0ul, 1ul>, std::tuple<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> >&&) () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/lambda.hpp:292}}
> {{#72575 0x00007fd74a88c47e in 
> lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> 
> >::operator()<process::Future<unsigned long> 
> const&>((cpp14::integer_sequence<unsigned long, 0ul, 1ul>&&)...) && () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/lambda.hpp:331}}
> {{#72576 0x00007fd74a888bd1 in 
> cpp17::invoke<lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> >, 
> process::Future<unsigned long> const&>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, 
> (lambda::internal::Partial<process::Future<unsigned long> const& 
> process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> >&&)...) () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/cpp17.hpp:42}}
> {{#72577 0x00007fd74a887149 in 
> lambda::internal::Invoke<void>::operator()<lambda::internal::Partial<process::Future<unsigned
>  long> const& process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> >, 
> process::Future<unsigned long> const&>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> const&) 
> () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/lambda.hpp:398}}
> {{#72578 0x00007fd74a885c5e in lambda::CallableOnce<void 
> (process::Future<unsigned long> 
> const&)>::CallableFn<lambda::internal::Partial<process::Future<unsigned long> 
> const& process::Future<unsigned long>::onAny<std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, void>(std::_Bind<void 
> (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned 
> long>::Prefer) const::\{lambda(std::_Bind<void (*(std::_Placeholder<1>, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>&&, process::Future<unsigned long> 
> const&)#1}, std::_Bind<void (*(std::_Placeholder<1>, char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*))(process::Future<unsigned long> const&, 
> char*, unsigned long, 
> process::network::internal::Socket<process::network::inet::Address>, 
> process::StreamingRequestDecoder*)>, std::_Placeholder<1> > 
> >::operator()(process::Future<unsigned long> const&) && () at 
> ../../../mesos-1.6.0/3rdparty/libprocess/../stout/include/stout/lambda.hpp:463}}
> {{#72579 0x00007fd748882c32 in lambda::CallableOnce<void 
> (process::Future<unsigned long> const&)>::operator()(process::Future<unsigned 
> long> const&) && () at 
> ../../mesos-1.6.0/3rdparty/stout/include/stout/lambda.hpp:443}}
> {{#72580 0x00007fd749a0ec83 in 
> process::internal::run<lambda::CallableOnce<void (process::Future<unsigned 
> long> const&)>, process::Future<unsigned 
> long>&>(std::vector<lambda::CallableOnce<void (process::Future<unsigned long> 
> const&)>, std::allocator<lambda::CallableOnce<void (process::Future<unsigned 
> long> const&)> > >&&, process::Future<unsigned long>&) () at 
> ../../mesos-1.6.0/3rdparty/libprocess/include/process/future.hpp:621
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to