Uploaded image for project: 'Python Driver'
  1. Python Driver
  2. PYTHON-1033

"wire protocol error: unknown opcode X" assert should be a well defined exception

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Trivial - P5
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.3
    • Component/s: None
    • Labels:
      None
    • Environment:
      pymongo current master Dec 15 792b7626dc8e3300924e125bd9f153f94de87469
      MongoDB 2.4.6

      Description

      I'm (still) trying to get to the bottom of our rare auth issues in production. In one test I wrote, I've been able to trigger a driver assertion in a mutli-threaded app when a socket disappears.

        File "/users/is/jblackburn/git/arctic/arctic/arctic.py", line 441, in get_library_type
          return self.get_library_metadata(ArcticLibraryBinding.TYPE_FIELD)
        File "/users/is/jblackburn/git/arctic/arctic/decorators.py", line 53, in f_retry
          return f(*args, **kwargs)
        File "/users/is/jblackburn/git/arctic/arctic/arctic.py", line 448, in get_library_metadata
          lib_metadata = self._library_coll[self.arctic.METADATA_COLL].find_one({"_id": self.arctic.METADATA_DOC_ID})
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/collection.py", line 1006, in find_one
          for result in cursor.limit(-1):
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/cursor.py", line 1097, in next
          if len(self.__data) or self._refresh():
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/cursor.py", line 1019, in _refresh
          self.__read_concern))
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/cursor.py", line 850, in __send_message
          **kwargs)
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/mongo_client.py", line 794, in _send_message_with_response
          exhaust)
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/mongo_client.py", line 805, in _reset_on_error
          return func(*args, **kwargs)
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/server.py", line 120, in send_message_with_response
          response_data = sock_info.receive_message(1, request_id)
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/pool.py", line 243, in receive_message
          self._raise_connection_failure(error)
        File "/users/is/jblackburn/git/mongo-python-driver/pymongo/pool.py", line 343, in _raise_connection_failure
          raise error
      AssertionError: wire protocol error: unknown opcode 0
      

        Attachments

        1. connect4.log
          293 kB
        2. connect4.log
          296 kB

          Activity

            People

            Assignee:
            behackett Bernie Hackett
            Reporter:
            jblackburn James Blackburn
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: