events.action: opened
events.author: tgrabiec
events.masked_author: username_0
events.text: HEAD = 0bcdd282c54d00651dd0518da91944a6ec97dab6 + the following diff:
  ```diff
  diff --git a/core/reactor.cc b/core/reactor.cc
  index 55164df..4f68279 100644
  --- a/core/reactor.cc
  +++ b/core/reactor.cc
  @@ -534,13 +534,14 @@ void reactor_backend_epoll::complete_epoll_event(pollable_fd_state& pfd, promise
           auto pr = std::make_unique<promise<io_event>>();
           iocb io;
           prepare_io(io);
  -        io.data = pr.get();
  +        auto f = pr->get_future();
  +        io.data = pr.release();
           _pending_aio.push_back(io);
           if ((_io_queue->queued_requests() > 0) ||
               (_pending_aio.size() >= std::min(max_aio / 4, _io_queue->_capacity / 2))) {
               flush_pending_aio();
           }
  -        return pr.release()->get_future();
  +        return f;
       });
   }
   
  @@ -2864,7 +2865,8 @@ void engine_exit(std::exception_ptr eptr) {
   }
   
   void report_failed_future(std::exception_ptr eptr) {
  -    report_exception("WARNING: exceptional future ignored", eptr);
  +    abort();
  +//    report_exception("WARNING: exceptional future ignored", eptr);
   }
   
   future<> check_direct_io_support(sstring path) {
  ```
  
  ```
  #2  0x00000000004d25f9 in report_failed_future (eptr=...) at core/reactor.cc:2868
  #3  0x0000000000f845f6 in future<foreign_ptr<lw_shared_ptr<query::result> > >::~future (this=<optimized out>, __in_chrg=<optimized out>)
      at /home/centos/src/scylla/build/rpmbuild/BUILD/scylla-1.2.1/seastar/core/future.hh:772
  #4  do_void_futurize_apply<auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}, future<foreign_ptr<lw_shared_ptr<query::result> > > >(std::enable_if&&, auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}) (
      func=func@entry=<unknown type in /usr/bin/scylla, CU 0xf30d9b3, DIE 0xfa67b4b>) at /home/centos/src/scylla/build/rpmbuild/BUILD/scylla-1.2.1/seastar/core/future.hh:1179
  #5  0x0000000000f8583e in futurize<void>::apply<auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}, future<foreign_ptr<lw_shared_ptr<query::result> > > >(auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}&&, future<foreign_ptr<lw_shared_ptr<query::result> > >&&)
      (func=<optimized out>) at /home/centos/src/scylla/build/rpmbuild/BUILD/scylla-1.2.1/seastar/core/future.hh:1227
  #6  future<> future<foreign_ptr<lw_shared_ptr<query::result> > >::then_wrapped<auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}, future<> >(auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}&&)::{lambda(future<>)#1}::operator()<future_state<foreign_ptr<lw_shared_ptr<query::result> > > >(auto, future<>) (state=<unknown type in /usr/bin/scylla, CU 0xf30d9b3, DIE 0xfa6b004>, __closure=0x60704739cc20)
      at /home/centos/src/scylla/build/rpmbuild/BUILD/scylla-1.2.1/seastar/core/future.hh:909
  #7  continuation<future<> future<foreign_ptr<lw_shared_ptr<query::result> > >::then_wrapped<auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}, future<> >(auto rpc::recv_helper<net::serializer, net::messaging_verb, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>, future<foreign_ptr<lw_shared_ptr<query::result> > >, query::read_command, range<dht::ring_position>, rpc::do_want_client_info>(rpc::signature<future<foreign_ptr<lw_shared_ptr<query::result> > > (query::read_command, range<dht::ring_position>)>, std::function<future<foreign_ptr<lw_shared_ptr<query::result> > > (rpc::client_info const&, query::read_command, range<dht::ring_position>)>&&, rpc::do_want_client_info)::{lambda(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)#1}::operator()(lw_shared_ptr<rpc::protocol<net::serializer, net::messaging_verb>::server::connection>, long, temporary_buffer<char>)::{lambda()#1}::operator()()::{lambda(future<foreign_ptr<lw_shared_ptr<query::result> > >)#1}&&)::{lambda(future<>)#1}, foreign_ptr<lw_shared_ptr<query::result> > >::run() (this=0x60704739cc00) at /home/centos/src/scylla/build/rpmbuild/BUILD/scylla-1.2.1/seastar/core/future.hh:402
  #8  0x00000000004d132e in reactor::run_tasks (this=this@entry=0x607000111000, tasks=...) at core/reactor.cc:1500
  #9  0x00000000004fbc6b in reactor::run (this=0x607000111000) at core/reactor.cc:1853
  #10 0x0000000000515c79 in smp::<lambda()>::operator()(void) const (__closure=0x600000085700) at core/reactor.cc:2640
  #11 0x00000000004ce24e in std::function<void ()>::operator()() const (this=<optimized out>) at /opt/scylladb/include/c++/5.3.1/functional:2271
  #12 dpdk_thread_adaptor (f=<optimized out>) at core/reactor.cc:2449
  #13 0x00000000006dac3b in eal_thread_loop ()
  ---Type <return> to continue, or q <return> to quit---select-frame 6
  #14 0x00007ffa7ceefdc5 in start_thread (arg=0x7ffa718cd700) at pthread_create.c:308
  #15 0x00007ffa7cc1d21d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
  ```
events.title: Failed future ignored somewhere inside rpc
events.type: issue
events.action: closed
events.author: avikivity
events.masked_author: username_1
events.type: issue