Uploaded image for project: 'PHP Driver: Extension'
  1. PHP Driver: Extension
  2. PHPC-1740

Appended client metadata may be inadvertently applied to all future clients

    XMLWordPrintable

Details

    • Bug
    • Status: Blocked
    • Minor - P4
    • Resolution: Unresolved
    • 1.8.0
    • None
    • None
    • None

    Description

      Per mongoc-handshake.h, mongoc_handshake_data_append can only be called once per process. After the first call, the global handshake data is frozen and subsequent calls to the function return false. PHPC does not check the return value.

      This means that the first "driver" option in a Manager's $driverOptions seen by PHPC will apply to all future libmongoc clients and their handshakes for the lifetime of that PHP worker.

      I think I originally called attention to this in PHPC-1494; however, it didn't come up in the code review (mongodb/mongo-php-driver#1114). This also isn't discussed in the PHP.net documentation for the driver option, although I think it'd be a challenge to do so clearly.

      I don't believe this can be addressed without changes to libmongoc that would allow each client to specify its own handshake data (beyond appname), but I wanted to open this ticket so we can at least track the issue.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jmikola@mongodb.com Jeremy Mikola
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: