-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Description
To reproduce:
- Compile RethinkDB with Clang 12, Clang 13, or Clang 14, targeting x86-64 (on Linux).
- Launch RethinkDB (on a fresh data directory).
- Run the query
r.tableCreate('foo')to create a table. - Shut down RethinkDB and start it again.
You get this crash.
This crash also occurs if you create the db and add the table with a GCC-compiled RethinkDB, but then start up a Clang-compiled RethinkDB afterwards.
This does not occur with Clang 10 or Clang 11. It might be untested with Clang 11 or 12. This also does not occur with a GCC-compiled RethinkDB.
srh@pc11vm3:~/rethinkdb$ ./build/release_clang/rethinkdb
Running rethinkdb 2.4.1-94-gca0eb82 (CLANG 14.0.0 )...
Running on Linux 5.15.0-23-generic x86_64
Loading data from directory /home/srh/rethinkdb/rethinkdb_data
Listening for intracluster connections on port 29015
Version: rethinkdb 2.4.1-94-gca0eb82 (CLANG 14.0.0 )
error: Error in thread 8 in src/clustering/administration/persist/raft_storage_interface.cc at line 64:
error: Guarantee failed: [str_to_log_index(index_str) == state.log.get_latest_index() + 1] 139844861282097 ('0000000000000001') == 1
error: Backtrace:
error: Fri Apr 1 22:12:31 2022
1 [0x55b105bb7200]: backtrace_t::backtrace_t() at 0x55b105bb7200 (./build/release_clang/rethinkdb)
2 [0x55b105bb7bd6]: lazy_backtrace_formatter_t::lazy_backtrace_formatter_t() at 0x55b105bb7bd6 (./build/release_clang/rethinkdb)
3 [0x55b105bb6b18]: format_backtrace[abi:cxx11](bool) at 0x55b105bb6b18 (./build/release_clang/rethinkdb)
4 [0x55b105bb5f1c]: report_fatal_error(char const*, int, char const*, ...) at 0x55b105bb5f1c (./build/release_clang/rethinkdb)
5 [0x55b105b0e147]: ./build/release_clang/rethinkdb(+0xa74147) [0x55b105b0e147] at 0x55b105b0e147 (./build/release_clang/rethinkdb)
6 [0x55b105b0409f]: metadata::read_txn_t::read_many<raft_log_entry_t<table_raft_state_t>, (cluster_version_t)9>(metadata::key_t<raft_log_entry_t<table_raft_state_t> > const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, raft_log_entry_t<table_raft_state_t> const&)> const&, signal_t*)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, read_stream_t*)#1}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, read_stream_t*) const at 0x55b105b0409f (./build/release_clang/rethinkdb)
7 [0x55b105aa3d76]: ./build/release_clang/rethinkdb(+0xa09d76) [0x55b105aa3d76] at 0x55b105aa3d76 (./build/release_clang/rethinkdb)
8 [0x55b105aa21eb]: metadata::read_txn_t::blob_to_stream(buf_parent_t, void const*, std::function<void (read_stream_t*)> const&) at 0x55b105aa21eb (./build/release_clang/rethinkdb)
9 [0x55b105aa3b9b]: ./build/release_clang/rethinkdb(+0xa09b9b) [0x55b105aa3b9b] at 0x55b105aa3b9b (./build/release_clang/rethinkdb)
10 [0x55b105b28f32]: btree_depth_first_traversal(counted_t<counted_buf_lock_and_read_t>, key_range_t const&, depth_first_traversal_callback_t*, access_t, direction_t, btree_key_t const*, btree_key_t const*, signal_t*) at 0x55b105b28f32 (./build/release_clang/rethinkdb)
11 [0x55b105b28633]: btree_depth_first_traversal(superblock_t*, key_range_t const&, depth_first_traversal_callback_t*, access_t, direction_t, release_superblock_t, signal_t*) at 0x55b105b28633 (./build/release_clang/rethinkdb)
12 [0x55b105aa25c2]: metadata::read_txn_t::read_many_bin(store_key_t const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, read_stream_t*)> const&, signal_t*) at 0x55b105aa25c2 (./build/release_clang/rethinkdb)
13 [0x55b105b0a8df]: table_raft_storage_interface_t::table_raft_storage_interface_t(metadata_file_t*, metadata::read_txn_t*, uuid_u const&, signal_t*) at 0x55b105b0a8df (./build/release_clang/rethinkdb)
14 [0x55b105b04aec]: real_table_persistence_interface_t::read_all_metadata(std::function<void (uuid_u const&, table_active_persistent_state_t const&, raft_storage_interface_t<table_raft_state_t>*, metadata::read_txn_t*)> const&, std::function<void (uuid_u const&, table_inactive_persistent_state_t const&, metadata::read_txn_t*)> const&, signal_t*) at 0x55b105b04aec (./build/release_clang/rethinkdb)
15 [0x55b1059c6054]: multi_table_manager_t::multi_table_manager_t(server_id_t const&, mailbox_manager_t*, server_config_client_t*, watchable_map_t<peer_id_t, multi_table_manager_bcard_t>*, watchable_map_t<std::pair<peer_id_t, uuid_u>, table_manager_bcard_t>*, watchable_map_t<std::pair<server_id_t, server_id_t>, empty_value_t>*, table_persistence_interface_t*, base_path_t const&, io_backender_t*, perfmon_collection_repo_t*) at 0x55b1059c6054 (./build/release_clang/rethinkdb)
16 [0x55b105a90e2f]: do_serve(io_backender_t*, bool, base_path_t const&, metadata_file_t*, serve_info_t const&, os_signal_cond_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at 0x55b105a90e2f (./build/release_clang/rethinkdb)
17 [0x55b105a99cbe]: serve(io_backender_t*, base_path_t const&, metadata_file_t*, serve_info_t const&, os_signal_cond_t*) at 0x55b105a99cbe (./build/release_clang/rethinkdb)
18 [0x55b105a6e446]: run_rethinkdb_serve(base_path_t const&, serve_info_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, file_direct_io_mode_t, int, optional<optional<unsigned long> > const&, server_id_t const*, server_config_versioned_t const*, cluster_semilattice_metadata_t const*, directory_lock_t*, bool*) at 0x55b105a6e446 (./build/release_clang/rethinkdb)
19 [0x55b105a6eab2]: 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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, file_direct_io_mode_t, int, optional<optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*) at 0x55b105a6eab2 (./build/release_clang/rethinkdb)
20 [0x55b105a883fe]: 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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, file_direct_io_mode_t, int, optional<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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, file_direct_io_mode_t, int, optional<optional<unsigned long> > const&, bool, serve_info_t*, directory_lock_t*, bool*)> >::_M_invoke(std::_Any_data const&) at 0x55b105a883fe (./build/release_clang/rethinkdb)
21 [0x55b10569e471]: starter_t::run_wrapper(std::function<void ()> const&) at 0x55b10569e471 (./build/release_clang/rethinkdb)
22 [0x55b1056a3dd5]: coro_t::run() at 0x55b1056a3dd5 (./build/release_clang/rethinkdb)
error: Exiting.
Trace/breakpoint trap (core dumped)
Metadata
Metadata
Assignees
Labels
No labels