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

Prevent misuse of client temporaries

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.3.0-rc0
    • Component/s: Documentation
    • Labels:
      None

      Description

      (Original title: "find/cursor documentation doesn't warn about client lifetime")

      From https://groups.google.com/forum/#!topic/mongodb-user/girvbR21AzM:

      auto c = pool->acquire()->database()[collection].find({});
      // loop c
      

      pool->acquire() returns an unique_ptr, and cursor object c rely on this unique_ptr, before c destroy, unique_ptr need stay.
      This is dangerous, however user may never find this bug until they release into production env.
      Maybe add an assert to check this, let it crash early.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: