Commit Graph

18 Commits

Author SHA1 Message Date
Shane Harvey
a886922157 PYTHON-1684 Support sharded transactions recovery token (#406)
Transient errors inside transaction unpins the session.
Add brief docs about sharded transactions and add 3.9 changelog.
Tests changes:
Add spec tests for sharded transaction recoveryToken.
Speed up txn tests by reducing SDAM waiting time after a network error.
Remove outdated test workaround for killAllSessions.
2019-02-27 13:28:06 -08:00
Shane Harvey
6850f04418
PYTHON-1751 Resync transaction spec tests for bulk write error reporting change (#402) 2019-02-20 10:43:19 -08:00
Shane Harvey
e4317d286b PYTHON-1508 Retryable commit/abort, has_error_label api
Retryable commitTransaction/abortTransaction.
Retry writes after certain writeConcernErrors.
Add has_error_label api.
Update unacknowledged write concern error messge.
Resync transaction tests and update test runner.
2018-06-07 14:39:52 -07:00
Shane Harvey
ca6a34f51d PYTHON-1508 SPEC-1097 Resync transaction tests
Database.command without a read_preference defaults to the
transaction's or Primary if the session is not in a transaction
Add runCommand transaction tests.
Update count tests.
2018-06-01 16:29:11 -07:00
Shane Harvey
714577c83e PYTHON-1508 commitTransaction can be called multiple times
This change allows applications to check if their transaction was commited or
not by repeatedly calling commit until the transaction state is known.
If a session is used after a commit for any operation (not including
another commit), the operation is not part of a transaction and the session's
transaction state is reset.
2018-05-29 14:33:21 -07:00
Shane Harvey
cac0d5548f PYTHON-1508 Remove autoStartTransaction and resync tests
Also use the test file's database name and collection name.
2018-05-22 13:29:41 -07:00
Shane Harvey
7aeec7b56b PYTHON-1508 Remove stmtId from transaction commands
The statement identifier is no longer required by the server.
2018-04-25 16:04:13 -07:00
A. Jesse Jiryu Davis
95d8f783c0 Resync transactions spec tests 2018-04-16 09:57:45 -04:00
Shane Harvey
3b02e59b70 Add errorCodeName assertion to transaction tests 2018-04-16 09:57:45 -04:00
Shane Harvey
0967c7ed6c Add startTransaction:true to the start of all transactions
Also add autocommit:false to all commands in transactions.
2018-04-16 09:57:45 -04:00
Shane Harvey
f710664f9a Test abortTransaction ignores TransactionAborted errors 2018-04-16 09:57:45 -04:00
Shane Harvey
6eb0e13393 Support causal consistency with transactions 2018-04-16 09:57:45 -04:00
Shane Harvey
712637ac8b Refactor transaction attributes into _Transaction class
Re-sync transaction spec tests.
2018-04-16 09:57:45 -04:00
A. Jesse Jiryu Davis
3177616f53 Re-sync spec tests from #e9791101 2018-04-16 09:57:45 -04:00
A. Jesse Jiryu Davis
c305f14e18 cache Query/GetMore.as_command, send stmtId with commit/abortTransaction
fix comparison of insertedIds in test_transactions.py
2018-04-16 09:57:45 -04:00
A. Jesse Jiryu Davis
54ba1b34f3 rewrite how ClientSession handles _ServerSession 2018-04-16 09:57:45 -04:00
A. Jesse Jiryu Davis
00878a2f53 new logic for error scenarios 2018-04-16 09:57:45 -04:00
A. Jesse Jiryu Davis
9df87b6401 prototype transaction tests 2018-04-16 09:57:45 -04:00