Skip to content

Sanity check failure: [arg_values[i].has()] #5800

@danielmewes

Description

@danielmewes

Was trying to test a work-around for #5799 and got the following error (in release mode this is a query failure, not a crash):

r.table('t1').changes({includeInitial: true}).fold(
    0,
    function(acc, el) {
      return r.branch(el.hasFields("old_val"), acc.sub(1), acc).do(function(sub_acc) {
        return r.branch(el.hasFields("new_val"), sub_acc.add(1), sub_acc);
      });
    },
    {emit: function(oldAcc, el, newAcc) { return [newAcc];} }
  )
error: Error in src/rdb_protocol/var_types.cc at line 69:
error: Guarantee failed: [arg_values[i].has()] 
error: Backtrace:
error: Fri May 27 11:42:34 2016

       1 [0x21492db]: rethinkdb_backtrace(void**, int) at rethinkdb_backtrace.cc:108
       2 [0x2174770]: backtrace_t::backtrace_t() at backtrace.cc:210 (discriminator 1)
       3 [0x2175b2c]: lazy_backtrace_formatter_t::lazy_backtrace_formatter_t() at backtrace.cc:331
       4 [0x21743f7]: format_backtrace(bool) at backtrace.cc:205
       5 [0x215306e]: report_fatal_error(char const*, int, char const*, ...) at errors.cc:85
       6 [0x20477bd]: ql::var_scope_t::with_func_arg_list(std::vector<ql::sym_t, std::allocator<ql::sym_t> > const&, std::vector<ql::datum_t, std::allocator<ql::datum_t> > const&) const at var_types.cc:69 (discriminator 6)
       7 [0x1ea442d]: ql::reql_func_t::call(ql::env_t*, std::vector<ql::datum_t, std::allocator<ql::datum_t> > const&, ql::eval_flags_t) const at func.cc:80
       8 [0x21031e8]: ql::fold_datum_stream_t::next_raw_batch(ql::env_t*, ql::batchspec_t const&) at datum_stream.cc:2425 (discriminator 4)
       9 [0x20f9c27]: ql::eager_datum_stream_t::next_grouped_batch(ql::env_t*, ql::batchspec_t const&, std::map<ql::datum_t, std::vector<ql::datum_t, std::allocator<ql::datum_t> >, optional_datum_less_t, std::allocator<std::pair<ql::datum_t const, std::vector<ql::datum_t, std::allocator<ql::datum_t> > > > >*) at datum_stream.cc:1441
       10 [0x20fa2cf]: ql::eager_datum_stream_t::next_batch_impl(ql::env_t*, ql::batchspec_t const&) at datum_stream.cc:1478
       11 [0x20f94e0]: ql::datum_stream_t::next_batch(ql::env_t*, ql::batchspec_t const&) at datum_stream.cc:1395
       12 [0x1ec95fd]: ql::query_cache_t::ref_t::serve(ql::env_t*, ql::response_t*) at query_cache.cc:317
       13 [0x1ec8442]: ql::query_cache_t::ref_t::fill_response(ql::response_t*) at query_cache.cc:214
       14 [0x20eaa64]: rdb_query_server_t::run_query(ql::query_params_t*, ql::response_t*, signal_t*) at query_server.cc:45 (discriminator 1)
       15 [0x2142863]: query_server_t::handle(http_req_t const&, http_res_t*, signal_t*) at server.cc:699 (discriminator 1)
       16 [0x1caec1c]: routing_http_app_t::handle(http_req_t const&, http_res_t*, signal_t*) at routing_app.cc:29 (discriminator 2)
       17 [0x1caec1c]: routing_http_app_t::handle(http_req_t const&, http_res_t*, signal_t*) at routing_app.cc:29 (discriminator 2)
       18 [0x1cb3146]: http_server_t::handle_conn(scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t) at http.cc:426 (discriminator 1)
       19 [0x1cb70e9]: boost::_mfi::mf2<void, http_server_t, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t>::operator()(http_server_t*, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t) const at mem_fn_template.hpp:280 (discriminator 4)
       20 [0x1cb6fe7]: void boost::_bi::list3<boost::_bi::value<http_server_t*>, boost::arg<1>, boost::_bi::value<auto_drainer_t::lock_t> >::operator()<boost::_mfi::mf2<void, http_server_t, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t>, boost::_bi::list1<scoped_ptr_t<linux_tcp_conn_descriptor_t>&> >(boost::_bi::type<void>, boost::_mfi::mf2<void, http_server_t, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t>&, boost::_bi::list1<scoped_ptr_t<linux_tcp_conn_descriptor_t>&>&, int) at bind.hpp:392
       21 [0x1cb6f12]: void boost::_bi::bind_t<void, boost::_mfi::mf2<void, http_server_t, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t>, boost::_bi::list3<boost::_bi::value<http_server_t*>, boost::arg<1>, boost::_bi::value<auto_drainer_t::lock_t> > >::operator()<scoped_ptr_t<linux_tcp_conn_descriptor_t> >(scoped_ptr_t<linux_tcp_conn_descriptor_t>&) at bind_template.hpp:32
       22 [0x1cb6bd2]: std::_Function_handler<void (scoped_ptr_t<linux_tcp_conn_descriptor_t>&), boost::_bi::bind_t<void, boost::_mfi::mf2<void, http_server_t, scoped_ptr_t<linux_tcp_conn_descriptor_t> const&, auto_drainer_t::lock_t>, boost::_bi::list3<boost::_bi::value<http_server_t*>, boost::arg<1>, boost::_bi::value<auto_drainer_t::lock_t> > > >::_M_invoke(std::_Any_data const&, scoped_ptr_t<linux_tcp_conn_descriptor_t>&) at functional:2073
       23 [0x1517be8]: std::function<void (scoped_ptr_t<linux_tcp_conn_descriptor_t>&)>::operator()(scoped_ptr_t<linux_tcp_conn_descriptor_t>&) const at functional:2471
       24 [0x151395c]: linux_nonthrowing_tcp_listener_t::handle(int) at network.cc:1344
       25 [0x151a3e9]: void std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)>::operator()<int&, void>(linux_nonthrowing_tcp_listener_t*, int&) const at functional:601
       26 [0x151a350]: void std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)> (linux_nonthrowing_tcp_listener_t*, int)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) at functional:1295
       27 [0x151a2d6]: void std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)> (linux_nonthrowing_tcp_listener_t*, int)>::operator()<, void>() at functional:1353
       28 [0x151a24c]: callable_action_instance_t<std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)> (linux_nonthrowing_tcp_listener_t*, int)> >::run_action() at callable_action.hpp:32
       29 [0x15453e6]: callable_action_wrapper_t::run() at runtime_utils.cc:48
       30 [0x1539c4a]: coro_t::run() at coroutines.cc:273 (discriminator 1)
       31 [0x151780d]: void coro_t::spawn_now_dangerously<std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)> (linux_nonthrowing_tcp_listener_t*, int)> >(std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(int)> (linux_nonthrowing_tcp_listener_t*, int)>&&) at coroutines.hpp:62
       32 [0x151284a]: linux_nonthrowing_tcp_listener_t::accept_loop(auto_drainer_t::lock_t) at network.cc:1311
       33 [0x151c13b]: void std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)>::operator()<auto_drainer_t::lock_t&, void>(linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t&) const at functional:601
       34 [0x151c090]: void std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)> (linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) at functional:1295
       35 [0x151c016]: void std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)> (linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t)>::operator()<, void>() at functional:1353
       36 [0x151bf5c]: callable_action_instance_t<std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)> (linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t)> >::run_action() at callable_action.hpp:32
       37 [0x15453e6]: callable_action_wrapper_t::run() at runtime_utils.cc:48
       38 [0x1539c4a]: coro_t::run() at coroutines.cc:273 (discriminator 1)
       39 [0x1516a6d]: coro_t* coro_t::spawn_sometime<std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)> (linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t)> >(std::_Bind<std::_Mem_fn<void (linux_nonthrowing_tcp_listener_t::*)(auto_drainer_t::lock_t)> (linux_nonthrowing_tcp_listener_t*, auto_drainer_t::lock_t)>&&) at coroutines.hpp:68
       40 [0x1512292]: linux_nonthrowing_tcp_listener_t::begin_listening() at network.cc:1103 (discriminator 1)
       41 [0x1513d01]: linux_tcp_listener_t::linux_tcp_listener_t(std::set<ip_address_t, std::less<ip_address_t>, std::allocator<ip_address_t> > const&, int, std::function<void (scoped_ptr_t<linux_tcp_conn_descriptor_t>&)> const&) at network.cc:1375 (discriminator 1)
       42 [0x1cb2c63]: http_server_t::http_server_t(ssl_ctx_st*, std::set<ip_address_t, std::less<ip_address_t>, std::allocator<ip_address_t> > const&, int, http_app_t*) at http.cc:353 (discriminator 1)
       43 [0x172b256]: administrative_http_server_manager_t::administrative_http_server_manager_t(std::set<ip_address_t, std::less<ip_address_t>, std::allocator<ip_address_t> > const&, int, http_app_t*, std::string, ssl_ctx_st*) at server.cc:33
       44 [0x1772b50]: do_serve(io_backender_t*, bool, base_path_t const&, metadata_file_t*, serve_info_t const&, os_signal_cond_t*, std::string const&) at serve.cc:574
       45 [0x1774086]: serve(io_backender_t*, base_path_t const&, metadata_file_t*, serve_info_t const&, os_signal_cond_t*) at serve.cc:692 (discriminator 1)
       46 [0x17a6799]: run_rethinkdb_serve(base_path_t const&, serve_info_t*, std::string const&, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> > const&, server_id_t const*, server_config_versioned_t const*, cluster_semilattice_metadata_t const*, directory_lock_t*, bool*) at command_line.cc:1250
       47 [0x17a6b52]: run_rethinkdb_porcelain(base_path_t const&, name_string_t const&, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> > const&, std::string const&, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*) at command_line.cc:1282
       48 [0x17baf37]: void std::_Bind<void (*(base_path_t, name_string_t, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> >, std::string, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> >, bool, serve_info_t*, directory_lock_t*, bool*))(base_path_t const&, name_string_t const&, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> > const&, std::string const&, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*)>::__call<void, , 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul>) at functional:1295
       49 [0x17bac96]: void std::_Bind<void (*(base_path_t, name_string_t, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> >, std::string, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> >, bool, serve_info_t*, directory_lock_t*, bool*))(base_path_t const&, name_string_t const&, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> > const&, std::string const&, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*)>::operator()<, void>() at functional:1353
       50 [0x17ba2dd]: std::_Function_handler<void (), std::_Bind<void (*(base_path_t, name_string_t, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> >, std::string, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> >, bool, serve_info_t*, directory_lock_t*, bool*))(base_path_t const&, name_string_t const&, std::set<name_string_t, std::less<name_string_t>, std::allocator<name_string_t> > const&, std::string const&, file_direct_io_mode_t, int, boost::optional<boost::optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*)> >::_M_invoke(std::_Any_data const&) at functional:2073
       51 [0x15426ce]: std::function<void ()>::operator()() const at functional:2471
       52 [0x1542791]: starter_t::run_wrapper(std::function<void ()> const&) at runtime.cc:61
       53 [0x1542efa]: void std::_Mem_fn<void (starter_t::*)(std::function<void ()> const&)>::operator()<std::function<void ()>&, void>(starter_t*, std::function<void ()>&) const at functional:601
       54 [0x1542e60]: void std::_Bind<std::_Mem_fn<void (starter_t::*)(std::function<void ()> const&)> (starter_t*, std::function<void ()>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) at functional:1295
       55 [0x1542de6]: void std::_Bind<std::_Mem_fn<void (starter_t::*)(std::function<void ()> const&)> (starter_t*, std::function<void ()>)>::operator()<, void>() at functional:1353
       56 [0x154299d]: std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (starter_t::*)(std::function<void ()> const&)> (starter_t*, std::function<void ()>)> >::_M_invoke(std::_Any_data const&) at functional:2073
       57 [0x15426ce]: std::function<void ()>::operator()() const at functional:2471
       58 [0x1542639]: callable_action_instance_t<std::function<void ()>&>::run_action() at callable_action.hpp:32
       59 [0x15453e6]: callable_action_wrapper_t::run() at runtime_utils.cc:48
       60 [0x1539c4a]: coro_t::run() at coroutines.cc:273 (discriminator 1)
       61 [0x154242d]: coro_t* coro_t::spawn_sometime<std::function<void ()>&>(std::function<void ()>&) at coroutines.hpp:68
       62 [0x15423c9]: starter_t::on_thread_switch() at runtime.cc:57
       63 [0x1546326]: linux_message_hub_t::on_event(int) at message_hub.cc:155
       64 [0x15323f7]: epoll_event_queue_t::run() at epoll.cc:115
       65 [0x15481b7]: linux_thread_pool_t::start_thread(void*) at thread_pool.cc:172
       66 [0x7fe4a94ba184]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8184) [0x7fe4a94ba184] at 0x7fe4a94ba184 (/lib/x86_64-linux-gnu/libpthread.so.0)
       67 [0x7fe4a91e737d]: clone+0x6d at 0x7fe4a91e737d (/lib/x86_64-linux-gnu/libc.so.6)
error: Exiting.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions