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

Bug #1740350 reported by Roel Van de Paar
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]
   }
   ^

Revision history for this message
Roel Van de Paar (roel11) wrote :

Laurynas has made a pre-final fix;

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

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.