Giter Site home page Giter Site logo

yugabyte / cassandra-cpp-driver Goto Github PK

View Code? Open in Web Editor NEW

This project forked from datastax/cpp-driver

8.0 7.0 11.0 84.08 MB

YugabyteDB C++ Driver for YCQL, based on the DataStax Driver

Home Page: https://docs.yugabyte.com/latest/develop/client-drivers/cpp/

License: Apache License 2.0

CMake 2.52% C++ 85.72% C 8.94% Shell 0.12% Makefile 0.03% Ruby 0.02% Batchfile 2.64%

cassandra-cpp-driver's Introduction

YugabyteDB C++ Driver for YCQL

A modern, feature-rich and highly tunable C/C++ client library for YugabyteDB's Cassandra-compatible YCQL API using exclusively Cassandra's binary protocol and Cassandra Query Language v3.

Getting the Driver

Packages for the driver's dependencies, libuv (1.x) and OpenSSL, are also provided under the dependencies directory for each platform (if applicable). Note: CentOS and Ubuntu use the version of OpenSSL provided with the distribution:

Features

Compatibility

This driver works exclusively with the Cassandra Query Language v3 (CQL3) and Cassandra's native protocol for YugaByte DB's Cassandra-compatible YCQL API.

Documentation

Getting Help

Please report any issues on github.

Feedback Requested

Examples

The driver includes several examples in the examples directory.

A Simple Example

#include <cassandra.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
  /* Setup and connect to cluster */
  CassFuture* connect_future = NULL;
  CassCluster* cluster = cass_cluster_new();
  CassSession* session = cass_session_new();
  char* hosts = "127.0.0.1";
  if (argc > 1) {
    hosts = argv[1];
  }

  /* Add contact points */
  cass_cluster_set_contact_points(cluster, hosts);

  /* Provide the cluster object as configuration to connect the session */
  connect_future = cass_session_connect(session, cluster);

  if (cass_future_error_code(connect_future) == CASS_OK) {
    CassFuture* close_future = NULL;

    /* Build statement and execute query */
    const char* query = "SELECT release_version FROM system.local";
    CassStatement* statement = cass_statement_new(query, 0);

    CassFuture* result_future = cass_session_execute(session, statement);

    if (cass_future_error_code(result_future) == CASS_OK) {
      /* Retrieve result set and get the first row */
      const CassResult* result = cass_future_get_result(result_future);
      const CassRow* row = cass_result_first_row(result);

      if (row) {
        const CassValue* value = cass_row_get_column_by_name(row, "release_version");

        const char* release_version;
        size_t release_version_length;
        cass_value_get_string(value, &release_version, &release_version_length);
        printf("release_version: '%.*s'\n", (int)release_version_length, release_version);
      }

      cass_result_free(result);
    } else {
      /* Handle error */
      const char* message;
      size_t message_length;
      cass_future_error_message(result_future, &message, &message_length);
      fprintf(stderr, "Unable to run query: '%.*s'\n", (int)message_length, message);
    }

    cass_statement_free(statement);
    cass_future_free(result_future);

    /* Close the session */
    close_future = cass_session_close(session);
    cass_future_wait(close_future);
    cass_future_free(close_future);
  } else {
    /* Handle error */
    const char* message;
    size_t message_length;
    cass_future_error_message(connect_future, &message, &message_length);
    fprintf(stderr, "Unable to connect: '%.*s'\n", (int)message_length, message);
  }

  cass_future_free(connect_future);
  cass_cluster_free(cluster);
  cass_session_free(session);

  return 0;
}

License

Copyright 2018, YugaByte, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

cassandra-cpp-driver's People

Contributors

aholmberg avatar angelcaban avatar aruntejch avatar azreal42 avatar bbucher avatar castaglia avatar devnexen avatar dimbleby avatar gahr avatar ghalliday avatar jduo avatar jeremyschlatter avatar jsirpoma avatar jstasiewicz avatar jul-stas avatar kcieslinski avatar lehenbauer avatar mbautin avatar mikefero avatar mpenick avatar mstump avatar olegloginov avatar planetbeing avatar pmcfadin avatar richardkchapman avatar sandvige avatar severinleonhardt avatar sonofsatoshi avatar stamhankar999 avatar tedyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cassandra-cpp-driver's Issues

Fix TSAN lock-order-inversion (potential deadlock)

==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17173)
Cycle in lock order graph: M0 (0x7b7c00001200) => M1 (0x7b7c000013c0) => M0

Mutex M1 acquired here while holding mutex M0 in main thread:
#5 cass::Session::clear(cass::Config const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb- 13/src/session.cpp:181:17 (libcassandra.so.2+0x20848c)
#6 cass::Session::connect_async(cass::Config const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, cass::SharedRefPtrcass::Future const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:351:3 (libcassandra.so. 2+0x2054c4)

Mutex M0 previously acquired by the same thread here:
#7 cass::Session::connect_async(cass::Config const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, cass::SharedRefPtrcass::Future const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:343:15 (libcassandra.so. 2+0x205494)

 #6 cass_session_connect_keyspace_n /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/      session.cpp:68:12 (libcassandra.so.2+0x2052d3)
 #7 cass_session_connect_keyspace /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/        session.cpp:57:10 (libcassandra.so.2+0x205079)
 #8 cass_session_connect /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:51:  10 (libcassandra.so.2+0x205079)
 #9 yb::CassandraSession::Connect(CassCluster_*) ${BUILD_ROOT}/../../src/yb/integration-tests/cql_test_util.cc:351:26 (libcql_test_util.so+0x16921)
 #10 yb::CassandraSession::Create(CassCluster_*) ${BUILD_ROOT}/../../src/yb/integration-tests/cql_test_util.cc:357:3 (libcql_test_util.so+0x16a89)
 #11 yb::CppCassandraDriver::CreateSession() ${BUILD_ROOT}/../../src/yb/integration-tests/cql_test_util.cc:500:10 (libcql_test_util.so+0x184c8)
 #12 yb::tools::AdminTestBase::CqlConnect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) ${BUILD_ROOT}/../../src/yb/tools/admin-test-  base.cc:77:17 (libadmin-test-base.so+0xc57a)
 #13 yb::tools::AdminCliTest_AddTransactionStatusTablet_Test::TestBody() ${BUILD_ROOT}/../../src/yb/tools/yb-admin-test.cc:1023:18 (yb-admin-test+0x15f7d6)
 #14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-  db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2599:10 (libgtest.so.1.12.1+0x8c2b9)
 #15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-  thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2635:14 (libgtest.so.1.12.1+0x8c2b9)
 #16 testing::Test::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2674:5     (libgtest.so.1.12.1+0x6358f)
 #17 testing::TestInfo::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2853:  11 (libgtest.so.1.12.1+0x64d69)
 #18 testing::TestSuite::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:3012: 30 (libgtest.so.1.12.1+0x65fc3)
 #19 testing::internal::UnitTestImpl::RunAllTests() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/         googletest/src/gtest.cc:5870:44 (libgtest.so.1.12.1+0x7ebd2)
 #20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::               UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2599:  10 (libgtest.so.1.12.1+0x8d7a9)
 #21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*   )(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:2635:14 (libgtest.so. 1.12.1+0x8d7a9)
 #22 testing::UnitTest::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/googletest-1.12.1/googletest/src/gtest.cc:5444:  10 (libgtest.so.1.12.1+0x7e3ed)
 #23 RUN_ALL_TESTS() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/installed/tsan/include/gtest/gtest.h:2293:73                  (libyb_test_main.so+0x49e3)
 #24 main ${BUILD_ROOT}/../../src/yb/util/test_main.cc:109:13 (libyb_test_main.so+0x49e3)

Mutex M0 acquired here while holding mutex M1 in thread T68:
#5 cass::Session::refresh_metadata_callback(CassFuture_, void) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra- cpp-driver-2.9.0-yb-13/src/session.cpp:482:17 (libcassandra.so.2+0x20c14c)

Mutex M1 previously acquired by the same thread here:
#5 cass::Session::refresh_metadata_callback(CassFuture_, void) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra- cpp-driver-2.9.0-yb-13/src/session.cpp:478:15 (libcassandra.so.2+0x20c0d1)

 #6 cass::Future::internal_set(cass::ScopedLock<cass::Mutex>&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-  driver-2.9.0-yb-13/src/future.cpp:190:5 (libcassandra.so.2+0x181c10)
 #7 cass::ResponseFuture::set_response(cass::Address, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7- x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.hpp:64:7 (libcassandra.so.2+0x1f7297)
 #8 cass::RequestHandler::set_response(cass::SharedRefPtr<cass::Host> const&, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-            v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:142:16 (libcassandra.so.2+0x1f5621)
 #9 cass::RequestExecution::set_response(cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-       clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:538:21 (libcassandra.so.2+0x1f5621)
 #10 cass::RequestExecution::on_result_response(cass::Connection*, cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-       x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:369:7 (libcassandra.so.2+0x1f5621)
 #11 cass::RequestExecution::on_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-     driver-2.9.0-yb-13/src/request_handler.cpp:252:7 (libcassandra.so.2+0x1f4e2f)
 #12 cass::Connection::consume(char*, unsigned long) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9. 0-yb-13/src/connection.cpp:472:25 (libcassandra.so.2+0x14607a)
 #13 cass::Connection::on_read(uv_stream_s*, long, uv_buf_t const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra- cpp-driver-2.9.0-yb-13/src/connection.cpp:670:15 (libcassandra.so.2+0x146cbd)
 #14 uv__read /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/libuv-1.23.0/src/unix/stream.c:1257:7 (libuv.so+0x29dce)
 #15 uv__stream_io /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/libuv-1.23.0/src/unix/stream.c:1324:5 (libuv.so+0x29dce)
 #16 uv__io_poll /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/libuv-1.23.0/src/unix/linux-core.c:401:11 (libuv.so+0x31e0c)      #17 uv_run /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/libuv-1.23.0/src/unix/core.c:370:5 (libuv.so+0x19ecc)
 #18 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20221019013514-1aec6dda08-centos7-x86_64-clang15/src/cassandra-cpp-driver-2.9.0-yb-   13/src/loop_thread.hpp:128:5 (libcassandra.so.2+0x21453d)

Installation Failing on Centos8

The installation make for this is not working despite me following the process. I tried to do the following:

sudo yum install automake cmake gcc-c++ git libtool openssl-devel zlib-devel
sudo yum install https://downloads.datastax.com/cpp-driver/centos/8/dependencies/libuv/v1.35.0/libuv-1.35.0-1.el8.x86_64.rpm
sudo yum install https://downloads.datastax.com/cpp-driver/centos/8/dependencies/libuv/v1.35.0/libuv-devel-1.35.0-1.el8.x86_64.rpm
git clone https://github.com/yugabyte/cassandra-cpp-driver.git
cd cassandra-cpp-driver
mkdir build
pushd build
cmake ..
make
sudo make install
popd

And I got the following error upon make:

/home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/libc_allocator_with_realloc.h:68:40: error: 'void* realloc(void*, size_t)' moving an object of non-trivially copyable type 'struct std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >'; use 'new' and 'delete' instead [-Werror=class-memaccess]
   68 |     return static_cast<pointer>(realloc(p, n * sizeof(value_type)));
      |                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/rh/gcc-toolset-11/root/usr/include/c++/11/utility:70,
                 from /opt/rh/gcc-toolset-11/root/usr/include/c++/11/algorithm:60,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/hash.hpp:20,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/address.hpp:20,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/serialization.hpp:20,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/buffer.hpp:21,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/request.hpp:20,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/batch_request.hpp:23,
                 from /home/warrenniles/Desktop/project/webserver/yugabyte/cql/cassandra-cpp-driver/src/batch_request.cpp:17:
/opt/rh/gcc-toolset-11/root/usr/include/c++/11/bits/stl_pair.h:211:12: note: 'struct std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >' declared here
  211 |     struct pair
      |            ^~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/cassandra.dir/build.make:146: CMakeFiles/cassandra.dir/src/batch_request.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:127: CMakeFiles/cassandra.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

...
use 'new' and 'delete' instead [-Werror=class-memaccess]
   68 |     return static_cast<pointer>(realloc(p, n * sizeof(value_type)));

This is the only thing blocking progress for my startup right now and I need to be able to connect to yugabyte via c++ for my application.

Sending not needed CQL Query "USE <keyspace>" to a new host before PREPARE CQL message.

If a new CQL host was added to the driver (including the host just down & up) - the drivers resends all Prepared statement to the host for the session context restoring.
If the Prepared Query is stored with 'keyspace', the driver sends 'USE ' (in a special temporary connection) before the PREPARE CQL request.
The 'USE' query is needed if the statement uses short non-qualified table names.
But if the prepared statement uses fully qualified table names the additional 'USE ' query is useless. And only affects the time of the new connection establishing, which can affect the system startup time if we have many new connections at the same time.

The issue fix must prevent these not needed 'USE ' queries from the driver.

Implementation notes:
ResultResponse as result of Prepare request has metadata including table name & keyspace related to the prepared statement.
The keyspace is stored in Session together with prepared_id & prepared_query. The keyspace should be cleaned or ignored when the prepared statement uses only fully qualified table names to prevent the discussed 'USE ' queries when a new host is added.
For non-qualified table names in prepared statement the 'USE' query makes sense and the driver behavior should still unchanged.

Fix compiler warning on concatenation

Noticed the following warning in build output:

/Users/tedyu/cassandra-cpp-driver/test/ccm_bridge/src/bridge.cpp:1879:86: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
    throw BridgeException("No Nodes are Available: Limiting total nodes for CCM to " + CLUSTER_NODE_LIMIT);
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~

Potential deadlock invoking Session::refresh_metadata_callback

Here is sample stack trace:

#0  __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007f4a1c0afbb5 in __GI___pthread_mutex_lock (mutex=0x1fe7328) at ../nptl/pthread_mutex_lock.c:80
#2  0x00007f4a1b5a5899 in uv_mutex_lock () from /usr/lib/x86_64-linux-gnu/libuv.so.1
#3  0x000000000095d8fc in cass::Session::refresh_metadata_callback(CassFuture_*, void*) ()
#4  0x000000000094bb3c in cass::Future::internal_set(cass::ScopedLock<cass::Mutex>&) ()
#5  0x00000000009eebcc in cass::RequestHandler::set_error(CassError_, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#6  0x0000000000957c43 in cass::Session::execute(cass::SharedRefPtr<cass::RequestHandler> const&) ()
#7  0x000000000095dddd in cass::Session::on_refresh_metadata(cass::PeriodicTask*) ()
#8  0x00007f4a1b5969b4 in ?? () from /usr/lib/x86_64-linux-gnu/libuv.so.1
#9  0x00007f4a1c0ad4a4 in start_thread (arg=0x7f49f9ffe700) at pthread_create.c:456

In the Session::on_refresh_metadata(), we already take the lock on refresh_metadata_future_mutex_.
We shouldn't take lock on refresh_metadata_future_mutex_ again in Session::refresh_metadata_callback

Data race reported by TSAN in a YugabyteDB integration test when shutting down the cluster

Keeping a yb::CassandraSession open while restarting the yb cluster in the ClusterRestartDuringRestore causes a data race within this library. Output from tsan is here[0]. The test is here. The unprotected overwrite of Metadata::updating in Metadata::clear_and_update_back is racing with the method call on Metadata::updating::update_partitions inside Metadata::update_partitions. There's also a second race between Metadata::update_keyspaces and Metadata::update_partitions probably on the unprotected read-and-increment of Metadata::schema_snapshot_version_ inside Metadata::update_keyspaces.

[0]

WARNING: ThreadSanitizer: data race (pid=663384)
  Write of size 8 at 0x7b7c000b4a58 by thread T59:
    #0 cass::Metadata::clear_and_update_back(cass::VersionNumber const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:955:13 (libcassandra.so.2+0x19f950)
    #1 cass::ControlConnection::on_query_meta_schema(cass::ControlConnection*, cass::ControlConnection::UnusedData const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cass::SharedRefPtr<cass::Response>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cass::SharedRefPtr<cass::Response> > > > const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/control_connection.cpp (libcassandra.so.2+0x154186)
    #2 cass::ControlConnection::ControlMultipleRequestCallback<cass::ControlConnection::UnusedData>::on_set(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cass::SharedRefPtr<cass::Response>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cass::SharedRefPtr<cass::Response> > > > const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/control_connection.cpp:1171:3 (libcassandra.so.2+0x158192)
    #3 cass::MultipleRequestCallback::InternalCallback::on_internal_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_callback.cpp:227:14 (libcassandra.so.2+0x1eab40)
    #4 cass::SimpleRequestCallback::on_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_callback.cpp:258:3 (libcassandra.so.2+0x1eb00c)
    #5 cass::Connection::consume(char*, unsigned long) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:472:25 (libcassandra.so.2+0x13fd0c)
    #6 cass::Connection::on_read(uv_stream_s*, long, uv_buf_t const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:670:15 (libcassandra.so.2+0x1408fd)
    #7 uv__read /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1257:7 (libuv.so+0x2aa2b)
    #8 uv__stream_io /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1324:5 (libuv.so+0x2aa2b)
    #9 uv__io_poll /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/linux-core.c:401:11 (libuv.so+0x32b94)
    #10 uv_run /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/core.c:370:5 (libuv.so+0x1abe3)
    #11 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:128:5 (libcassandra.so.2+0x21031d)

  Previous read of size 8 at 0x7b7c000b4a58 by thread T60 (mutexes: write M790798982087133632, write M789391607203580552):
    #0 cass::Metadata::update_partitions(int, cass::VersionNumber const&, cass::ResultResponse*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:895:3 (libcassandra.so.2+0x19d4e2)
    #1 cass::Session::refresh_metadata_callback(CassFuture_*, void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:500:23 (libcassandra.so.2+0x20792f)
    #2 cass::Future::internal_set(cass::ScopedLock<cass::Mutex>&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/future.cpp:190:5 (libcassandra.so.2+0x17cfb0)
    #3 cass::ResponseFuture::set_response(cass::Address, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.hpp:64:7 (libcassandra.so.2+0x1f1945)
    #4 cass::RequestHandler::set_response(cass::SharedRefPtr<cass::Host> const&, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:142:16 (libcassandra.so.2+0x1efc90)
    #5 cass::RequestExecution::set_response(cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:538:21 (libcassandra.so.2+0x1efc90)
    #6 cass::RequestExecution::on_result_response(cass::Connection*, cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:369:7 (libcassandra.so.2+0x1efc90)
    #7 cass::RequestExecution::on_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:252:7 (libcassandra.so.2+0x1ef51d)
    #8 cass::Connection::consume(char*, unsigned long) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:472:25 (libcassandra.so.2+0x13fd0c)
    #9 cass::Connection::on_read(uv_stream_s*, long, uv_buf_t const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:670:15 (libcassandra.so.2+0x1408fd)
    #10 uv__read /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1257:7 (libuv.so+0x2aa2b)
    #11 uv__stream_io /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1324:5 (libuv.so+0x2aa2b)
    #12 uv__io_poll /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/linux-core.c:401:11 (libuv.so+0x32b94)
    #13 uv_run /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/core.c:370:5 (libuv.so+0x1abe3)
    #14 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:128:5 (libcassandra.so.2+0x21031d)

  Location is heap block of size 3128 at 0x7b7c000b4400 allocated by main thread:
    #0 operator new(unsigned long) /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (yb-admin-snapshot-schedule-test+0x385cc6)
    #1 cass_session_new /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:36:26 (libcassandra.so.2+0x200139)
    #2 yb::CassandraSession::Connect(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:333:23 (libcql_test_util.so+0x31534)
    #3 yb::CassandraSession::Create(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:340:3 (libcql_test_util.so+0x3164c)
    #4 yb::CppCassandraDriver::CreateSession() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:483:10 (libcql_test_util.so+0x328e8)
    #5 yb::tools::AdminTestBase::CqlConnect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/admin-test-base.cc:77:17 (libadmin-test-base.so+0x1d343)
    #6 yb::tools::YbAdminSnapshotScheduleFailoverTests::ClusterRestartTest(bool) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2761:17 (yb-admin-snapshot-schedule-test+0x3c656e)
    #7 yb::tools::YbAdminSnapshotScheduleFailoverTests_ClusterRestartDuringRestoreWithReplayUncommitted_Test::TestBody() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2868:3 (yb-admin-snapshot-schedule-test+0x3c8885)
    #8 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x67b8f)
    #9 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x67b8f)
    #10 testing::Test::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x47cc8)
    #11 testing::TestInfo::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x48f5d)
    #12 testing::TestCase::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x49c06)
    #13 testing::internal::UnitTestImpl::RunAllTests() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x54606)
    #14 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x6899f)
    #15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x6899f)
    #16 testing::UnitTest::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x53d59)
    #17 RUN_ALL_TESTS() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/installed/tsan/include/gtest/gtest.h:2233:46 (libyb_test_main.so+0x754b)
    #18 main /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/util/test_main.cc:105:13 (libyb_test_main.so+0x70e7)

  Mutex M790798982087133632 is already destroyed.

  Mutex M789391607203580552 is already destroyed.

  Thread T59 (tid=663903, running) created by main thread at:
    #0 pthread_create /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965:3 (yb-admin-snapshot-schedule-test+0x3148bb)
    #1 uv_thread_create /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/thread.c:202:9 (libuv.so+0x2e4a3)
    #2 cass::LoopThread::run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:106:14 (libcassandra.so.2+0x200f5e)
    #3 cass::Session::connect_async(cass::Config const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cass::SharedRefPtr<cass::Future> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:381:3 (libcassandra.so.2+0x200f5e)
    #4 cass_session_connect_keyspace_n /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:68:12 (libcassandra.so.2+0x2008ff)
    #5 cass_session_connect_keyspace /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:57:10 (libcassandra.so.2+0x2006f9)
    #6 cass_session_connect /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:51:10 (libcassandra.so.2+0x2006f9)
    #7 yb::CassandraSession::Connect(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:334:26 (libcql_test_util.so+0x31580)
    #8 yb::CassandraSession::Create(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:340:3 (libcql_test_util.so+0x3164c)
    #9 yb::CppCassandraDriver::CreateSession() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:483:10 (libcql_test_util.so+0x328e8)
    #10 yb::tools::AdminTestBase::CqlConnect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/admin-test-base.cc:77:17 (libadmin-test-base.so+0x1d343)
    #11 yb::tools::YbAdminSnapshotScheduleFailoverTests::ClusterRestartTest(bool) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2761:17 (yb-admin-snapshot-schedule-test+0x3c656e)
    #12 yb::tools::YbAdminSnapshotScheduleFailoverTests_ClusterRestartDuringRestoreWithReplayUncommitted_Test::TestBody() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2868:3 (yb-admin-snapshot-schedule-test+0x3c8885)
    #13 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x67b8f)
    #14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x67b8f)
    #15 testing::Test::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x47cc8)
    #16 testing::TestInfo::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x48f5d)
    #17 testing::TestCase::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x49c06)
    #18 testing::internal::UnitTestImpl::RunAllTests() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x54606)
    #19 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x6899f)
    #20 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x6899f)
    #21 testing::UnitTest::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x53d59)
    #22 RUN_ALL_TESTS() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/installed/tsan/include/gtest/gtest.h:2233:46 (libyb_test_main.so+0x754b)
    #23 main /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/util/test_main.cc:105:13 (libyb_test_main.so+0x70e7)

  Thread T60 (tid=663904, running) created by thread T59 at:
    #0 pthread_create /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965:3 (yb-admin-snapshot-schedule-test+0x3148bb)
    #1 uv_thread_create /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/thread.c:202:9 (libuv.so+0x2e4a3)
    #2 cass::LoopThread::run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:106:14 (libcassandra.so.2+0x2082e5)
    #3 cass::Session::on_run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:555:12 (libcassandra.so.2+0x2082e5)
    #4 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:127:13 (libcassandra.so.2+0x210312)

SUMMARY: ThreadSanitizer: data race /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:955:13 in cass::Metadata::clear_and_update_back(cass::VersionNumber const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=663384)
  Write of size 4 at 0x7b7c000b4a80 by thread T59:
    #0 cass::Metadata::update_keyspaces(int, cass::VersionNumber const&, cass::ResultResponse*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:799:27 (libcassandra.so.2+0x1966c3)
    #1 cass::ControlConnection::on_query_meta_schema(cass::ControlConnection*, cass::ControlConnection::UnusedData const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cass::SharedRefPtr<cass::Response>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cass::SharedRefPtr<cass::Response> > > > const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/control_connection.cpp:597:27 (libcassandra.so.2+0x1541ec)
    #2 cass::ControlConnection::ControlMultipleRequestCallback<cass::ControlConnection::UnusedData>::on_set(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cass::SharedRefPtr<cass::Response>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, cass::SharedRefPtr<cass::Response> > > > const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/control_connection.cpp:1171:3 (libcassandra.so.2+0x158192)
    #3 cass::MultipleRequestCallback::InternalCallback::on_internal_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_callback.cpp:227:14 (libcassandra.so.2+0x1eab40)
    #4 cass::SimpleRequestCallback::on_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_callback.cpp:258:3 (libcassandra.so.2+0x1eb00c)
    #5 cass::Connection::consume(char*, unsigned long) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:472:25 (libcassandra.so.2+0x13fd0c)
    #6 cass::Connection::on_read(uv_stream_s*, long, uv_buf_t const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:670:15 (libcassandra.so.2+0x1408fd)
    #7 uv__read /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1257:7 (libuv.so+0x2aa2b)
    #8 uv__stream_io /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1324:5 (libuv.so+0x2aa2b)
    #9 uv__io_poll /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/linux-core.c:401:11 (libuv.so+0x32b94)
    #10 uv_run /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/core.c:370:5 (libuv.so+0x1abe3)
    #11 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:128:5 (libcassandra.so.2+0x21031d)

  Previous write of size 4 at 0x7b7c000b4a80 by thread T60 (mutexes: write M790798982087133632, write M789391607203580552):
    #0 cass::Metadata::update_partitions(int, cass::VersionNumber const&, cass::ResultResponse*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:894:27 (libcassandra.so.2+0x19d4d6)
    #1 cass::Session::refresh_metadata_callback(CassFuture_*, void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:500:23 (libcassandra.so.2+0x20792f)
    #2 cass::Future::internal_set(cass::ScopedLock<cass::Mutex>&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/future.cpp:190:5 (libcassandra.so.2+0x17cfb0)
    #3 cass::ResponseFuture::set_response(cass::Address, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.hpp:64:7 (libcassandra.so.2+0x1f1945)
    #4 cass::RequestHandler::set_response(cass::SharedRefPtr<cass::Host> const&, cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:142:16 (libcassandra.so.2+0x1efc90)
    #5 cass::RequestExecution::set_response(cass::SharedRefPtr<cass::Response> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:538:21 (libcassandra.so.2+0x1efc90)
    #6 cass::RequestExecution::on_result_response(cass::Connection*, cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:369:7 (libcassandra.so.2+0x1efc90)
    #7 cass::RequestExecution::on_set(cass::ResponseMessage*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/request_handler.cpp:252:7 (libcassandra.so.2+0x1ef51d)
    #8 cass::Connection::consume(char*, unsigned long) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:472:25 (libcassandra.so.2+0x13fd0c)
    #9 cass::Connection::on_read(uv_stream_s*, long, uv_buf_t const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/connection.cpp:670:15 (libcassandra.so.2+0x1408fd)
    #10 uv__read /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1257:7 (libuv.so+0x2aa2b)
    #11 uv__stream_io /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/stream.c:1324:5 (libuv.so+0x2aa2b)
    #12 uv__io_poll /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/linux-core.c:401:11 (libuv.so+0x32b94)
    #13 uv_run /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/core.c:370:5 (libuv.so+0x1abe3)
    #14 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:128:5 (libcassandra.so.2+0x21031d)

  Location is heap block of size 3128 at 0x7b7c000b4400 allocated by main thread:
    #0 operator new(unsigned long) /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (yb-admin-snapshot-schedule-test+0x385cc6)
    #1 cass_session_new /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:36:26 (libcassandra.so.2+0x200139)
    #2 yb::CassandraSession::Connect(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:333:23 (libcql_test_util.so+0x31534)
    #3 yb::CassandraSession::Create(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:340:3 (libcql_test_util.so+0x3164c)
    #4 yb::CppCassandraDriver::CreateSession() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:483:10 (libcql_test_util.so+0x328e8)
    #5 yb::tools::AdminTestBase::CqlConnect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/admin-test-base.cc:77:17 (libadmin-test-base.so+0x1d343)
    #6 yb::tools::YbAdminSnapshotScheduleFailoverTests::ClusterRestartTest(bool) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2761:17 (yb-admin-snapshot-schedule-test+0x3c656e)
    #7 yb::tools::YbAdminSnapshotScheduleFailoverTests_ClusterRestartDuringRestoreWithReplayUncommitted_Test::TestBody() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2868:3 (yb-admin-snapshot-schedule-test+0x3c8885)
    #8 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x67b8f)
    #9 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x67b8f)
    #10 testing::Test::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x47cc8)
    #11 testing::TestInfo::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x48f5d)
    #12 testing::TestCase::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x49c06)
    #13 testing::internal::UnitTestImpl::RunAllTests() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x54606)
    #14 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x6899f)
    #15 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x6899f)
    #16 testing::UnitTest::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x53d59)
    #17 RUN_ALL_TESTS() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/installed/tsan/include/gtest/gtest.h:2233:46 (libyb_test_main.so+0x754b)
    #18 main /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/util/test_main.cc:105:13 (libyb_test_main.so+0x70e7)

  Mutex M790798982087133632 is already destroyed.

  Mutex M789391607203580552 is already destroyed.

  Thread T59 (tid=663903, running) created by main thread at:
    #0 pthread_create /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965:3 (yb-admin-snapshot-schedule-test+0x3148bb)
    #1 uv_thread_create /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/thread.c:202:9 (libuv.so+0x2e4a3)
    #2 cass::LoopThread::run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:106:14 (libcassandra.so.2+0x200f5e)
    #3 cass::Session::connect_async(cass::Config const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cass::SharedRefPtr<cass::Future> const&) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:381:3 (libcassandra.so.2+0x200f5e)
    #4 cass_session_connect_keyspace_n /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:68:12 (libcassandra.so.2+0x2008ff)
    #5 cass_session_connect_keyspace /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:57:10 (libcassandra.so.2+0x2006f9)
    #6 cass_session_connect /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:51:10 (libcassandra.so.2+0x2006f9)
    #7 yb::CassandraSession::Connect(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:334:26 (libcql_test_util.so+0x31580)
    #8 yb::CassandraSession::Create(CassCluster_*) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:340:3 (libcql_test_util.so+0x3164c)
    #9 yb::CppCassandraDriver::CreateSession() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/integration-tests/cql_test_util.cc:483:10 (libcql_test_util.so+0x328e8)
    #10 yb::tools::AdminTestBase::CqlConnect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/admin-test-base.cc:77:17 (libadmin-test-base.so+0x1d343)
    #11 yb::tools::YbAdminSnapshotScheduleFailoverTests::ClusterRestartTest(bool) /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2761:17 (yb-admin-snapshot-schedule-test+0x3c656e)
    #12 yb::tools::YbAdminSnapshotScheduleFailoverTests_ClusterRestartDuringRestoreWithReplayUncommitted_Test::TestBody() /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/tools/yb-admin-snapshot-schedule-test.cc:2868:3 (yb-admin-snapshot-schedule-test+0x3c8885)
    #13 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x67b8f)
    #14 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x67b8f)
    #15 testing::Test::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x47cc8)
    #16 testing::TestInfo::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x48f5d)
    #17 testing::TestCase::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x49c06)
    #18 testing::internal::UnitTestImpl::RunAllTests() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x54606)
    #19 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x6899f)
    #20 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:2438:14 (libgmock.so+0x6899f)
    #21 testing::UnitTest::Run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/gmock-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x53d59)
    #22 RUN_ALL_TESTS() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/installed/tsan/include/gtest/gtest.h:2233:46 (libyb_test_main.so+0x754b)
    #23 main /nfusr/dev-server/zdrudi/code/yugabyte-db/build/tsan-clang12-dynamic-ninja/../../src/yb/util/test_main.cc:105:13 (libyb_test_main.so+0x70e7)

  Thread T60 (tid=663904, running) created by thread T59 at:
    #0 pthread_create /opt/yb-build/llvm/yb-llvm-v12.0.1-yb-1-1633143152-bdb147e6-almalinux8-x86_64-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:965:3 (yb-admin-snapshot-schedule-test+0x3148bb)
    #1 uv_thread_create /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/libuv-1.23.0/src/unix/thread.c:202:9 (libuv.so+0x2e4a3)
    #2 cass::LoopThread::run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:106:14 (libcassandra.so.2+0x2082e5)
    #3 cass::Session::on_run() /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/session.cpp:555:12 (libcassandra.so.2+0x2082e5)
    #4 cass::LoopThread::on_run_internal(void*) /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/loop_thread.hpp:127:13 (libcassandra.so.2+0x210312)

SUMMARY: ThreadSanitizer: data race /opt/yb-build/thirdparty/yugabyte-db-thirdparty-v20220505181611-c1907426fc-almalinux8-x86_64-clang12/src/cassandra-cpp-driver-2.9.0-yb-13/src/metadata.cpp:799:27 in cass::Metadata::update_keyspaces(int, cass::VersionNumber const&, cass::ResultResponse*)

libc_allocator_with_realloc.h:68:40: error

Ubuntu 20.04 compiling error

......use ‘new’ and ‘delete’ instead [-Werror=class-memaccess]
68 | return static_cast(realloc(p, n * sizeof(value_type)));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~

Getting Started: Which GCC should we compile using CMAKE with to avoid failing due to warnings?

Since some of the GCC versions will throw warnings and cause the build to fail, which compiler should I use to compile the library?
Note for my use case I will still need to compile my own client code that will use this library with C++20, but I am wondering what GCC I should use to compile this driver with?

For example: GCC GNU 11.2.1 throws the following error

[warrenniles@localhost build]$ cmake ..
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 11.2.1
-- The CXX compiler identification is GNU 11.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/rh/gcc-toolset-11/root/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/rh/gcc-toolset-11/root/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at cmake/modules/CppDriver.cmake:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
  CMakeLists.txt:10 (include)


CMake Deprecation Warning at cmake/modules/CppDriver.cmake:289 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:13 (CassPolicies)


CMake Deprecation Warning at cmake/modules/CppDriver.cmake:294 (cmake_policy):
  The OLD behavior for policy CMP0048 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:13 (CassPolicies)


-- PROJECT version: 2.9.0
-- Found Libuv: /usr/lib64/libuv.so  
-- LIBUV version: 1.35.0
-- Found OpenSSL: /usr/lib64/libssl.so (found version "1.1.1k") 
CMake Deprecation Warning at cmake/modules/CppDriver.cmake:690 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:127 (CassSetCompilerFlags)


-- Using std::atomic implementation for atomic operations
CMake Deprecation Warning at src/third_party/sparsehash/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Checking to see if CXX compiler accepts flag -std=c++11
-- Checking to see if CXX compiler accepts flag -std=c++11 - yes
-- Using hash header <functional> and namespace "std"
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for memcpy
-- Looking for memcpy - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of long long
-- Check size of long long - done
-- Check size of uint16_t
-- Check size of uint16_t - done
-- Check size of u_int16_t
-- Check size of u_int16_t - done
-- Check size of __uint16_t
-- Check size of __uint16_t - done
-- Looking for GRND_NONBLOCK
-- Looking for GRND_NONBLOCK - found
-- Looking for SO_NOSIGPIPE
-- Looking for SO_NOSIGPIPE - not found
-- Looking for sigtimedwait
-- Looking for sigtimedwait - found
-- Performing Test HAVE_BUILTIN_BSWAP32
-- Performing Test HAVE_BUILTIN_BSWAP32 - Success
-- Performing Test HAVE_BUILTIN_BSWAP64
-- Performing Test HAVE_BUILTIN_BSWAP64 - Success
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/build
[warrenniles@localhost build]$ make
[  1%] Building CXX object CMakeFiles/cassandra.dir/src/abstract_data.cpp.o
[  2%] Building CXX object CMakeFiles/cassandra.dir/src/address.cpp.o
[  3%] Building CXX object CMakeFiles/cassandra.dir/src/auth.cpp.o
[  5%] Building CXX object CMakeFiles/cassandra.dir/src/auth_requests.cpp.o
[  6%] Building CXX object CMakeFiles/cassandra.dir/src/auth_responses.cpp.o
[  7%] Building CXX object CMakeFiles/cassandra.dir/src/batch_request.cpp.o
In file included from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:101,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/dense_hash_set:108,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/address.hpp:22,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/serialization.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/buffer.hpp:21,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/request.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/batch_request.hpp:23,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/batch_request.cpp:17:
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/libc_allocator_with_realloc.h: In instantiation of ‘T* sparsehash::libc_allocator_with_realloc<T>::reallocate(sparsehash::libc_allocator_with_realloc<T>::pointer, sparsehash::libc_allocator_with_realloc<T>::size_type) [with T = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; sparsehash::libc_allocator_with_realloc<T>::pointer = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >*; sparsehash::libc_allocator_with_realloc<T>::size_type = long unsigned int]’:
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:1202:40:   required from ‘sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::pointer sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::realloc_or_die(sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::pointer, sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::size_type) [with A = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::pointer = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >*; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::alloc_impl<sparsehash::libc_allocator_with_realloc<U> >::size_type = long unsigned int]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:628:36:   required from ‘void sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::resize_table(sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type, sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type, sparsehash::true_type) [with Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type = long unsigned int; sparsehash::true_type = sparsehash::integral_constant<bool, true>]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:785:21:   required from ‘void sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::clear_to_size(sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type) [with Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type = long unsigned int]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:638:5:   required from ‘void sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::copy_from(const sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>&, sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type) [with Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type = long unsigned int]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:729:5:   required from ‘sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::dense_hashtable(const sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>&, sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type) [with Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type = long unsigned int]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:620:21:   required from ‘bool sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::resize_delta(sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type) [with Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::size_type = long unsigned int]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/densehashtable.h:998:16:   required from ‘sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::value_type& sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::find_or_insert(const key_type&) [with DefaultValue = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::DefaultValue; Value = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; Key = std::__cxx11::basic_string<char>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; ExtractKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SelectKey; SetKey = sparsehash::dense_hash_map<std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >::SetKey; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >; sparsehash::dense_hashtable<Value, Key, HashFcn, ExtractKey, SetKey, EqualKey, Alloc>::key_type = std::__cxx11::basic_string<char>]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/dense_hash_map:264:53:   required from ‘sparsehash::dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>::data_type& sparsehash::dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>::operator[](const key_type&) [with Key = std::__cxx11::basic_string<char>; T = cass::SharedRefPtr<const cass::PreparedMetadata::Entry>; HashFcn = std::hash<std::__cxx11::basic_string<char> >; EqualKey = std::equal_to<std::__cxx11::basic_string<char> >; Alloc = sparsehash::libc_allocator_with_realloc<std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> > >; sparsehash::dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>::data_type = cass::SharedRefPtr<const cass::PreparedMetadata::Entry>; sparsehash::dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>::key_type = std::__cxx11::basic_string<char>]’
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/prepared.hpp:113:26:   required from here
/home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/third_party/sparsehash/src/sparsehash/internal/libc_allocator_with_realloc.h:68:40: error: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘struct std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >’; use ‘new’ and ‘delete’ instead [-Werror=class-memaccess]
   68 |     return static_cast<pointer>(realloc(p, n * sizeof(value_type)));
      |                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/rh/gcc-toolset-11/root/usr/include/c++/11/utility:70,
                 from /opt/rh/gcc-toolset-11/root/usr/include/c++/11/algorithm:60,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/hash.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/address.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/serialization.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/buffer.hpp:21,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/request.hpp:20,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/batch_request.hpp:23,
                 from /home/warrenniles/Desktop/project1/project1-webserver/external_libraries/src/cassandra-cpp-driver/src/batch_request.cpp:17:
/opt/rh/gcc-toolset-11/root/usr/include/c++/11/bits/stl_pair.h:211:12: note: ‘struct std::pair<const std::__cxx11::basic_string<char>, cass::SharedRefPtr<const cass::PreparedMetadata::Entry> >’ declared here
  211 |     struct pair
      |            ^~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/cassandra.dir/build.make:146: CMakeFiles/cassandra.dir/src/batch_request.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:127: CMakeFiles/cassandra.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

[Need For Help] How to change default host port in the YCQL API?

I don't think the doc has a explain of this, and now I have connected successfully through 9042. But I want to change it to my customized port to avoid port occupied, and I can't find the a corresponding API about it :( Please help me with it if there do exist a API to call

Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.