Skip to content

fix(pymongo): don't record failure document values by default - #495

Open
vastin wants to merge 2 commits into
masterfrom
fix/pymongo-failure-document
Open

vastin wants to merge 2 commits into
masterfrom
fix/pymongo-failure-document

Conversation

@vastin

@vastin vastin commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Issue #, if available: n/a

Description of changes:

XrayCommandListener.failed() recorded the whole pymongo failure document even with record_full_documents=False. Server failures can echo stored document values (errInfo.consideredValue on schema validation errors, errmsg/keyValue on duplicate key errors), which the option is meant to keep out of traces.

Heads-up: by default, failure metadata now keeps only ok, code, codeName, errorLabels and errtype. errmsg is no longer recorded unless record_full_documents=True.

Changes:

  • ext/pymongo/patch.py: filter failure documents unless record_full_documents=True; handle non-mapping failures
  • Add tests/ext/pymongo and a ext-pymongo tox env (no pymongo tests existed)
  • Document the option in docs/thirdparty.rst; CHANGELOG entry

Testing:

  • tox -e py312-ext-pymongo: 12 passed
  • Checked against MongoDB 8: validation and duplicate key failures no longer include document values by default

Follow-up: release needed after merge.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

XrayCommandListener.failed() recorded the whole failure document even when
record_full_documents=False. Server failures can echo stored document values
(errInfo.consideredValue on schema validation errors, errmsg and keyValue on
duplicate key errors), so by default only keep ok, code, codeName,
errorLabels and errtype. The full document is still recorded with
record_full_documents=True.

Also add unit tests and a tox env for the pymongo patch, and document the
option in docs/thirdparty.rst.
@vastin
vastin requested a review from a team as a code owner October 13, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant