Uploaded image for project: 'C++ Driver'
  1. C++ Driver
  2. CXX-2620

mongocxx 3.7.2 crashes when I build my project in release mode

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Gone away
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None

    Description

      Summary

      I am building mongocxx, mongo-c-driver in release mode and my project was built in debug mode, this configuration worked but when I build my project in release mode I get an error:

       

      Thread 1 (LWP 11721):
      #0  0x000000000061444f in __wrap_free ()
      #1  0x00007fefdded4562 in mongocxx::v_noabi::database::_run_command(mongocxx::v_noabi::client_session const*, bsoncxx::v_noabi::view_or_value<bsoncxx::v_noabi::document::view, bsoncxx::v_noabi::document::value>) () from /nix/store/n11rgm9m6jmkvk1bf0lklzph6qgjwx9x-mongocxx/lib/libmongocxx.so._noabi
      #2  0x00007fefdded4739 in mongocxx::v_noabi::database::run_command(bsoncxx::v_noabi::view_or_value<bsoncxx::v_noabi::document::view, bsoncxx::v_noabi::document::value>) () from /nix/store/n11rgm9m6jmkvk1bf0lklzph6qgjwx9x-mongocxx/lib/libmongocxx.so._noabi
       
      

      The code:

       

      bool MongoDBClient::connected(mongocxx::database& db) const {  
        using namespace std::chrono_literals;    
        logInfo("Try to ping mongo");    
        std::this_thread::sleep_for(1s);    
        try {        
           auto result = db.run_command(make_document(kvp("ping", 1))); 
           if (result.view()["ok"].get_double().value != 1) {
                  return false;
           }
          } catch (const std::exception& e) {
              logWarn("Mongo ping does not work {}", e.what());
              return false;
          }
          logInfo("Mongo is ok");
          return true;
      } 
       
       
      auto pool = std::make_shared<mongocxx::pool>(mongocxx::uri{configuration});
      auto connection_ptr = pool->acquire();
      auto db             = connection_ptr->database(name);                       auto ok = connected(db);

      I use nixos and when building I tried to use versions 1.21.1, 1.22.0 and 3.7.2 for mongo-c-driver and mongocxx respectively:

      // mongo-c-client
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$out \ -DBUILD_VERSION=${version} -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
      // mongocxx
      cmake .. -DENABLE_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$out \ -DBUILD_VERSION=${version} -DCMAKE_CXX_STANDARD=20
      

      Environment

      OS: nix-os

      Compiler: GCC x86_64-unknown-linux-gnu/11.3.0

      Mongo-c-driver: 1.21.0, 1.22.1
      Mongocxx: 3.6.6, 3.7.2

       

      Attachments

        Activity

          People

            kyle.kloberdanz@mongodb.com Kyle Kloberdanz
            vladmark20132017@gmail.com Vlad Vlad
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: