Uploaded image for project: 'Motor'
  1. Motor
  2. MOTOR-379

Test failure - asyncio_tests.test_asyncio_change_stream.TestAsyncIOChangeStream.test_missing_id

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 2.1
    • Affects Version/s: None
    • Component/s: None
    • None

      After SERVER-37786, the server throws an error when encountering pipelines that remove the resume token. This results in the following error:

      ERROR: Encountered an event whose _id field, which contains the resume token, was modified by the pipeline. Modifying the _id field of an event makes it impossible to resume the stream from that point. Only transformations that retain the unmodified _id field are allowed. Expected: { _id: { _data: "825D701823000000172B022C0100296E5A10043323AB0E8D6B41589FC92A7FA0FDF28246645F696400645D70182350CC22333D87EC460004" } } but found: {} (OperationFailure)
      Traceback (most recent call last):
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/test/asyncio_tests/__init__.py", line 48, in __call__
          result = self.orig_method()
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/test/asyncio_tests/__init__.py", line 226, in wrapped
          self.loop.run_until_complete(task)
        File "/opt/python/3.7/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
          return future.result()
        File "/opt/python/3.7/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
          return fut.result()
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/test/asyncio_tests/test_asyncio_change_stream.py", line 111, in test_missing_id
          await future
        File "/opt/python/3.7/lib/python3.7/concurrent/futures/thread.py", line 57, in run
          result = self.fn(*self.args, **self.kwargs)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/motor/core.py", line 1414, in _next
          return self.delegate.next()
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/change_stream.py", line 226, in next
          doc = self.try_next()
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/change_stream.py", line 280, in try_next
          change = self._cursor._try_next(True)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/command_cursor.py", line 270, in _try_next
          self._refresh()
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/command_cursor.py", line 206, in _refresh
          False))
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/command_cursor.py", line 140, in __send_message
          operation, self._unpack_response, address=self.__address)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/mongo_client.py", line 1347, in _run_operation_with_response
          exhaust=exhaust)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/mongo_client.py", line 1465, in _retryable_read
          return func(session, server, sock_info, slave_ok)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/mongo_client.py", line 1341, in _cmd
          unpack_res)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/server.py", line 136, in run_operation_with_response
          _check_command_response(first)
        File "/data/mci/c22b34dcba43ae76565dfa53fe8402b8/src/.tox/asyncio-py37/lib/python3.7/site-packages/pymongo/helpers.py", line 159, in _check_command_response
          raise OperationFailure(msg % errmsg, code, response)
      pymongo.errors.OperationFailure: Encountered an event whose _id field, which contains the resume token, was modified by the pipeline. Modifying the _id field of an event makes it impossible to resume the stream from that point. Only transformations that retain the unmodified _id field are allowed. Expected: { _id: { _data: "825D701823000000172B022C0100296E5A10043323AB0E8D6B41589FC92A7FA0FDF28246645F696400645D70182350CC22333D87EC460004" } } but found: {}
      system-out:
      
      	
      system-err:
      
      	
      

      The test should be updated to expected either of the two error types - InvalidOperation and/or OperationFailure.

            Assignee:
            prashant.mital Prashant Mital (Inactive)
            Reporter:
            prashant.mital Prashant Mital (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: