UBSAN storage/rocksdb/rocksdb/util/coding.h:367:3: runtime error: store to misaligned address

Description

just a few tests that illustrate the issue:
rocksdb.rpl.rpl_rocksdb_row_img_idx_full 'row-write-prepared'
rocksdb.rpl.rpl_rocksdb_row_img_idx_noblob 'row-write-prepared'
rocksdb.read_only_tx 'write_prepared'

storage/rocksdb/rocksdb/util/coding.h:367:3: runtime error: store to misaligned address 0x7ffeb02f0e44 for type 'long unsigned int', which requires 8 byte alignment 0x7ffeb02f0e44: note: pointer points here 01 00 87 2b 00 00 00 00 02 00 00 00 01 00 00 00 65 97 f2 2a af 55 00 00 d3 bf ed 2a af 55 00 00 ^ #0 0x7efd80ab557a in void rocksdb::PutUnaligned<unsigned long>(unsigned long*, unsigned long const&) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/util/coding.h:367 #1 0x7efd80ab557a in rocksdb::ParseOptionHelper(char*, rocksdb::OptionType const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_helper.cc:449 #2 0x7efd80cd163a in ParseBlockBasedTableOption /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/table/block_based_table_factory.cc:364 #3 0x7efd80cd163a in rocksdb::GetBlockBasedTableOptionsFromMap(rocksdb::BlockBasedTableOptions const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, rocksdb::BlockBasedTableOptions*, bool, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/table/block_based_table_factory.cc:395 #4 0x7efd80a9502e in rocksdb::GetTableFactoryFromMap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::shared_ptr<rocksdb::TableFactory>*, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_helper.cc:1240 #5 0x7efd80bca28b in rocksdb::RocksDBOptionsParser::EndSection(rocksdb::OptionSection, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_parser.cc:439 #6 0x7efd80bd120d in rocksdb::RocksDBOptionsParser::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::Env*, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_parser.cc:296 #7 0x7efd80bd1c97 in rocksdb::RocksDBOptionsParser::VerifyRocksDBOptionsFromFile(rocksdb::DBOptions const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<rocksdb::ColumnFamilyOptions, std::allocator<rocksdb::ColumnFamilyOptions> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::Env*, rocksdb::OptionsSanityCheckLevel, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_parser.cc:671 #8 0x7efd80bda727 in rocksdb::PersistRocksDBOptions(rocksdb::DBOptions const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<rocksdb::ColumnFamilyOptions, std::allocator<rocksdb::ColumnFamilyOptions> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::Env*) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/options/options_parser.cc:101 #9 0x7efd7fc8ef13 in rocksdb::DBImpl::WriteOptionsFile(bool, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/db/db_impl.cc:2568 #10 0x7efd7ff1dd7a in rocksdb::DBImpl::Open(rocksdb::DBOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >*, rocksdb::DB**, bool) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/db/db_impl_open.cc:1176 #11 0x7efd81b61f19 in rocksdb::TransactionDB::Open(rocksdb::DBOptions const&, rocksdb::TransactionDBOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >*, rocksdb::TransactionDB**) /home/glorch/dev/8.0/percona-server/storage/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc:220 #12 0x7efd7f3bd313 in rocksdb_init_func /home/glorch/dev/8.0/percona-server/storage/rocksdb/ha_rocksdb.cc:4158 #13 0x55af2cad099c in ha_initialize_handlerton(st_plugin_int*) /home/glorch/dev/8.0/percona-server/sql/handler.cc:769 #14 0x55af2b830a93 in plugin_initialize /home/glorch/dev/8.0/percona-server/sql/sql_plugin.cc:1202 #15 0x55af2b84be1c in plugin_init_initialize_and_reap /home/glorch/dev/8.0/percona-server/sql/sql_plugin.cc:1358 #16 0x55af2b87413c in plugin_register_dynamic_and_init_all(int*, char**, int) /home/glorch/dev/8.0/percona-server/sql/sql_plugin.cc:1585 #17 0x55af2af12eda in init_server_components /home/glorch/dev/8.0/percona-server/sql/mysqld.cc:5303 #18 0x55af2af29764 in mysqld_main(int, char**) /home/glorch/dev/8.0/percona-server/sql/mysqld.cc:6183 #19 0x55af2aedbfd2 in main /home/glorch/dev/8.0/percona-server/sql/main.cc:30 #20 0x7efdae8dab96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96) #21 0x55af2aedbee9 in _start (/home/glorch/dev/8.0/percona-server-install-8.0/bin/mysqld+0x18678ee9)

Environment

None

Smart Checklist

Activity

Show:

George Lorch September 19, 2018 at 8:30 PM
Edited

Upstream RocksDB actually has this mostly handled when building stand alone. The problem is that MyRocks does not build RocksDB as a subproject, instead is 'sources' the files directly into the MyRocks compilation module. By doing this, the CMakeLists.txt magic that sets up RocksDB for UBSAN runs within the RocksDB project is never invoked.

This should be sent upstream.

Done

Details

Assignee

Reporter

Time tracking

30m logged

Components

Fix versions

Affects versions

Priority

Smart Checklist

Created September 19, 2018 at 2:52 PM
Updated March 6, 2024 at 12:50 PM
Resolved November 21, 2018 at 3:11 PM