Skip to content

Spanner: 'test_transaction_batch_update_and_execute_dml' systest flakes with unexpected status code. #7504

Description

@tseaver

From: https://source.cloud.google.com/results/invocations/1fe1c70e-9abd-44c2-ae2f-426dec16730f/targets/cloud-devrel%2Fclient-libraries%2Fgoogle-cloud-python%2Fpresubmit%2Fspanner/log

_________TestSessionAPI.test_transaction_batch_update_and_execute_dml_________self=<tests.system.test_system.TestSessionAPItestMethod=test_transaction_batch_update_and_execute_dml>deftest_transaction_batch_update_and_execute_dml(self):
retry=RetryInstanceState(_has_all_ddl)
retry(self._db.reload)()
session=self._db.session()
session.create()
self.to_delete.append(session)
withsession.batch() asbatch:
batch.delete(self.TABLE, self.ALL)
insert_statements=list(self._generate_insert_statements())
update_statements= [
(
"UPDATE contacts SET email = @email ""WHERE contact_id = @contact_id;",
{"contact_id": 1, "email": "phreddy@example.com"},
{"contact_id": Type(code=INT64), "email": Type(code=STRING)},
)
]
delete_statement="DELETE contacts WHERE TRUE;"defunit_of_work(transaction, self):
rows=list(transaction.read(self.TABLE, self.COLUMNS, self.ALL))
self.assertEqual(rows, [])
status, row_counts=transaction.batch_update(
insert_statements+update_statements
)
self.assertEqual(status.code, 0) # XXX: where are values defined?self.assertEqual(len(row_counts), len(insert_statements) +1)
forrow_countinrow_counts:
self.assertEqual(row_count, 1)
row_count=transaction.execute_update(delete_statement)
self.assertEqual(row_count, len(insert_statements))
>session.run_in_transaction(unit_of_work, self)
tests/system/test_system.py:859:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
google/cloud/spanner_v1/session.py:295: inrun_in_transactionreturn_value=func(txn, *args, **kw)
tests/system/test_system.py:850: inunit_of_workself.assertEqual(status.code, 0) # XXX: where are values defined?EAssertionError: 10!=0

Metadata

Metadata

Assignees

Labels

api: spannerIssues related to the Spanner API.flakytestingtype: processA process-related concern. May include testing, release, or the like.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions