Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

@tseaver

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.TestSessionAPI testMethod=test_transaction_batch_update_and_execute_dml>
    def test_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)
        with session.batch() as batch:
            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": "[email protected]"},
                {"contact_id": Type(code=INT64), "email": Type(code=STRING)},
            )
        ]
        delete_statement = "DELETE contacts WHERE TRUE;"
        def unit_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)
            for row_count in row_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: in run_in_transaction
    return_value = func(txn, *args, **kw)
tests/system/test_system.py:850: in unit_of_work
    self.assertEqual(status.code, 0)  # XXX: where are values defined?
E AssertionError: 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