Regression - ha_rocksdb.cc.o build error in PS 5.7

Bug #1740350 reported by Roel Van de Paar on 2017-12-28
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Status tracked in 5.7
5.5
Invalid
Undecided
Unassigned
5.6
Invalid
Undecided
Unassigned
5.7
Fix Released
Critical
Laurynas Biveinis

Bug Description

These build errors are seen during a recent PS 5.7 build:

Scanning dependencies of target rocksdb
[ 21%] Building CXX object storage/rocksdb/CMakeFiles/rocksdb.dir/ha_rocksdb.cc.o
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/include/mysql/plugin_audit.h:20:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/sql/./sql_audit.h:20,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:40:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:789:26: error: ‘kInitialMaxDeadlocks’ is not a member of ‘rocksdb’
                          rocksdb::kInitialMaxDeadlocks, 0, UINT32_MAX, 0);
                          ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/include/mysql/plugin.h:365:44: note: in definition of macro ‘MYSQL_SYSVAR_UINT’
   #name, comment, check, update, &varname, def, min, max, blk }
                                            ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_transaction_impl::get(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*) const’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2267:68: error: no matching function for call to ‘rocksdb::Transaction::Get(const rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle* const&, const rocksdb::Slice&, rocksdb::PinnableSlice* const&)’
     return m_rocksdb_tx->Get(m_read_opts, column_family, key, value);
                                                                    ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2267:68: note: candidates are:
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h:16:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./ha_rocksdb.h:45,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:24:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:168:18: note: virtual rocksdb::Status rocksdb::Transaction::Get(const rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, std::string*)
   virtual Status Get(const ReadOptions& options,
                  ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:168:18: note: no known conversion for argument 4 from ‘rocksdb::PinnableSlice* const’ to ‘std::string* {aka std::basic_string<char>*}
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:172:18: note: virtual rocksdb::Status rocksdb::Transaction::Get(const rocksdb::ReadOptions&, const rocksdb::Slice&, std::string*)
   virtual Status Get(const ReadOptions& options, const Slice& key,
                  ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:172:18: note: candidate expects 3 arguments, 4 provided
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_transaction_impl::get_for_update(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*, bool)’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2281:48: error: no matching function for call to ‘rocksdb::Transaction::GetForUpdate(rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle* const&, const rocksdb::Slice&, rocksdb::PinnableSlice* const&, bool&)’
                                       exclusive);
                                                ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2281:48: note: candidates are:
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h:16:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./ha_rocksdb.h:45,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:24:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:210:18: note: virtual rocksdb::Status rocksdb::Transaction::GetForUpdate(const rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, std::string*, bool)
   virtual Status GetForUpdate(const ReadOptions& options,
                  ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:210:18: note: no known conversion for argument 4 from ‘rocksdb::PinnableSlice* const’ to ‘std::string* {aka std::basic_string<char>*}
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:215:18: note: virtual rocksdb::Status rocksdb::Transaction::GetForUpdate(const rocksdb::ReadOptions&, const rocksdb::Slice&, std::string*, bool)
   virtual Status GetForUpdate(const ReadOptions& options, const Slice& key,
                  ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h:215:18: note: candidate expects 4 arguments, 5 provided
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_writebatch_impl::get(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*) const’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2494:44: error: no matching function for call to ‘rocksdb::WriteBatchWithIndex::GetFromBatchAndDB(rocksdb::TransactionDB*&, const rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle* const&, const rocksdb::Slice&, rocksdb::PinnableSlice* const&)’
                                       value);
                                            ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2494:44: note: candidates are:
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./ha_rocksdb.h:46:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:24:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h:187:10: note: rocksdb::Status rocksdb::WriteBatchWithIndex::GetFromBatchAndDB(rocksdb::DB*, const rocksdb::ReadOptions&, const rocksdb::Slice&, std::string*)
   Status GetFromBatchAndDB(DB* db, const ReadOptions& read_options,
          ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h:187:10: note: candidate expects 4 arguments, 5 provided
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h:189:10: note: rocksdb::Status rocksdb::WriteBatchWithIndex::GetFromBatchAndDB(rocksdb::DB*, const rocksdb::ReadOptions&, rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, std::string*)
   Status GetFromBatchAndDB(DB* db, const ReadOptions& read_options,
          ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h:189:10: note: no known conversion for argument 5 from ‘rocksdb::PinnableSlice* const’ to ‘std::string* {aka std::basic_string<char>*}
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: At global scope:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3032:25: error: ‘DeadlockInfo’ in namespace ‘rocksdb’ does not name a type
   get_dl_txn_info(const rocksdb::DeadlockInfo &txn,
                         ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3032:48: error: ISO C++ forbids declaration of ‘txn’ with no type [-fpermissive]
   get_dl_txn_info(const rocksdb::DeadlockInfo &txn,
                                                ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3061:30: error: ‘DeadlockPath’ in namespace ‘rocksdb’ does not name a type
   get_dl_path_trx_info(const rocksdb::DeadlockPath &path_entry) {
                              ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3061:53: error: ISO C++ forbids declaration of ‘path_entry’ with no type [-fpermissive]
   get_dl_path_trx_info(const rocksdb::DeadlockPath &path_entry) {
                                                     ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In static member function ‘static myrocks::Rdb_deadlock_info::Rdb_dl_trx_info myrocks::Rdb_snapshot_status::get_dl_txn_info(const int&, const GL_INDEX_ID&)’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3036:27: error: request for member ‘m_txn_id’ in ‘txn’, which is of non-class type ‘const int’
     txn_data.trx_id = txn.m_txn_id;
                           ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3049:62: error: request for member ‘m_cf_id’ in ‘txn’, which is of non-class type ‘const int’
     rocksdb::ColumnFamilyHandle *cfh = cf_manager.get_cf(txn.m_cf_id);
                                                              ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3053:25: error: request for member ‘m_waiting_key’ in ‘txn’, which is of non-class type ‘const int’
         rdb_hexdump(txn.m_waiting_key.c_str(), txn.m_waiting_key.length());
                         ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3053:52: error: request for member ‘m_waiting_key’ in ‘txn’, which is of non-class type ‘const int’
         rdb_hexdump(txn.m_waiting_key.c_str(), txn.m_waiting_key.length());
                                                    ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3055:35: error: request for member ‘m_exclusive’ in ‘txn’, which is of non-class type ‘const int’
     txn_data.exclusive_lock = txn.m_exclusive;
                                   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In static member function ‘static myrocks::Rdb_deadlock_info myrocks::Rdb_snapshot_status::get_dl_path_trx_info(const int&)’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3063:43: error: request for member ‘path’ in ‘path_entry’, which is of non-class type ‘const int’
     deadlock_info.path.reserve(path_entry.path.size());
                                           ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3065:39: error: request for member ‘path’ in ‘path_entry’, which is of non-class type ‘const int’
     for (const auto& txn : path_entry.path) {
                                       ^
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/util/mutexlock.h:11:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/monitoring/statistics.h:17,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/util/stop_watch.h:7,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:62:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3071:32: error: request for member ‘limit_exceeded’ in ‘path_entry’, which is of non-class type ‘const int’
     DBUG_ASSERT_IFF(path_entry.limit_exceeded, path_entry.path.empty());
                                ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./././rdb_utils.h:110:3: note: in expansion of macro ‘DBUG_ASSERT’
   DBUG_ASSERT(static_cast<bool>(a) == static_cast<bool>(b))
   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3071:5: note: in expansion of macro ‘DBUG_ASSERT_IFF’
     DBUG_ASSERT_IFF(path_entry.limit_exceeded, path_entry.path.empty());
     ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3071:59: error: request for member ‘path’ in ‘path_entry’, which is of non-class type ‘const int’
     DBUG_ASSERT_IFF(path_entry.limit_exceeded, path_entry.path.empty());
                                                           ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./././rdb_utils.h:110:3: note: in expansion of macro ‘DBUG_ASSERT’
   DBUG_ASSERT(static_cast<bool>(a) == static_cast<bool>(b))
   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3071:5: note: in expansion of macro ‘DBUG_ASSERT_IFF’
     DBUG_ASSERT_IFF(path_entry.limit_exceeded, path_entry.path.empty());
     ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3073:21: error: request for member ‘path’ in ‘path_entry’, which is of non-class type ‘const int’
     if (!path_entry.path.empty() && !path_entry.limit_exceeded) {
                     ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3073:49: error: request for member ‘limit_exceeded’ in ‘path_entry’, which is of non-class type ‘const int’
     if (!path_entry.path.empty() && !path_entry.limit_exceeded) {
                                                 ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3074:50: error: request for member ‘path’ in ‘path_entry’, which is of non-class type ‘const int’
       const auto& deadlocking_txn = *(path_entry.path.end() - 1);
                                                  ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘std::vector<myrocks::Rdb_deadlock_info> myrocks::Rdb_snapshot_status::get_deadlock_info()’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3109:37: error: ‘class rocksdb::TransactionDB’ has no member named ‘GetDeadlockInfoBuffer’
     const auto& dlock_buffer = rdb->GetDeadlockInfoBuffer();
                                     ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:3110:35: error: unable to deduce ‘auto&&’ from ‘dlock_buffer’
     for (const auto& path_entry : dlock_buffer) {
                                   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In function ‘void myrocks::update_rocksdb_stall_status()’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:11085:60: error: no matching function for call to ‘rocksdb::TransactionDB::GetMapProperty(rocksdb::ColumnFamilyHandle*&, const char [16], std::map<std::basic_string<char>, std::basic_string<char> >*)’
     if (!rdb->GetMapProperty(cfh, "rocksdb.cfstats", &props)) {
                                                            ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:11085:60: note: candidates are:
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h:15:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./ha_rocksdb.h:45,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:24:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h:161:16: note: virtual bool rocksdb::StackableDB::GetMapProperty(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, std::map<std::basic_string<char>, double>*)
   virtual bool GetMapProperty(ColumnFamilyHandle* column_family,
                ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h:161:16: note: no known conversion for argument 3 from ‘std::map<std::basic_string<char>, std::basic_string<char> >*’ to ‘std::map<std::basic_string<char>, double>*’
In file included from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h:14:0,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/./ha_rocksdb.h:44,
                 from /git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:24:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/db.h:600:16: note: virtual bool rocksdb::DB::GetMapProperty(const rocksdb::Slice&, std::map<std::basic_string<char>, double>*)
   virtual bool GetMapProperty(const Slice& property,
                ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/rocksdb/include/rocksdb/db.h:600:16: note: candidate expects 2 arguments, 3 provided
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In function ‘void myrocks::rocksdb_set_max_latest_deadlocks(THD*, st_mysql_sys_var*, void*, const void*)’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:11623:10: error: ‘class rocksdb::TransactionDB’ has no member named ‘SetDeadlockInfoBufferSize’
     rdb->SetDeadlockInfoBufferSize(rocksdb_max_latest_deadlocks);
          ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_writebatch_impl::get(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*) const’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2495:3: error: control reaches end of non-void function [-Werror=return-type]
   }
   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_transaction_impl::get_for_update(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*, bool)’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2282:3: error: control reaches end of non-void function [-Werror=return-type]
   }
   ^
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc: In member function ‘virtual rocksdb::Status myrocks::Rdb_transaction_impl::get(rocksdb::ColumnFamilyHandle*, const rocksdb::Slice&, rocksdb::PinnableSlice*) const’:
/git/PS-5.7-new/PS-5.7-trunk_dbg/storage/rocksdb/ha_rocksdb.cc:2268:3: error: control reaches end of non-void function [-Werror=return-type]
   }
   ^

Roel Van de Paar (roel11) wrote :

Laurynas has made a pre-final fix;

cd storage/rocksdb/rocksdb
git checkout ab0542f5ec6e7c7e405267eaa2e2a603a77d570b
cd ../../..

Fixed in https://github.com/percona/percona-server/pull/2036

Attn Docs, this does not need a RN entry, as it was not present in any released version.

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-402

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers