opened
tgrabiec
username_0
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
```
Failed future ignored somewhere inside rpc
issue
closed
avikivity
username_1
issue