Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix for flaky test_read_timestamp_client_side_autocommit test #1071

Merged
merged 4 commits into from
Jan 10, 2024

Conversation

ankiaga
Copy link
Contributor

@ankiaga ankiaga commented Jan 10, 2024

No description provided.

@ankiaga ankiaga requested review from a team as code owners January 10, 2024 04:37
@product-auto-label product-auto-label bot added size: xs Pull request size is extra small. api: spanner Issues related to the googleapis/python-spanner API. labels Jan 10, 2024
@ankiaga ankiaga changed the title fix: Disabling flaky assertion for test_read_timestamp_client_side_autocommit test fix: Fix for flaky test_read_timestamp_client_side_autocommit test Jan 10, 2024
@@ -420,6 +420,7 @@ def test_read_timestamp_client_side_autocommit(self):
assert self._cursor.description[0].name == "SHOW_READ_TIMESTAMP"
assert isinstance(read_timestamp_query_result_1[0][0], DatetimeWithNanoseconds)

time.sleep(0.25)
self._cursor.execute("SELECT * FROM contacts")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you feel we need to test this command twice? This way we can avoid sleep, just thoughts.
Java does it only once and validates the type of result. https://github.com/googleapis/java-spanner/blob/58f94b200276d879f83e4432716b49baf3206226/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java#L1003

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand your comment clearly. We are executing command twice because we want to confirm that the state is updated in the cursor class and that read timestamps are different.

Also removed the sleep command and inserting a row after discussion with Knut

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: it should not be necessary to set the connection in read-only mode for this as long as we are in auto-commit mode. (Having it in read-only mode also does not hurt, so feel free to leave as-is, as long as we are confident that it would work with self._conn.read_only=False` as well.)

Copy link
Contributor

@harshachinta harshachinta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but wondering why do we need to execute the command twice and verify the read_timestamp of both.

@ankiaga ankiaga added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 10, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 10, 2024
@ankiaga ankiaga added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 10, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 10, 2024
Copy link
Contributor

@olavloite olavloite left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@@ -420,6 +420,7 @@ def test_read_timestamp_client_side_autocommit(self):
assert self._cursor.description[0].name == "SHOW_READ_TIMESTAMP"
assert isinstance(read_timestamp_query_result_1[0][0], DatetimeWithNanoseconds)

time.sleep(0.25)
self._cursor.execute("SELECT * FROM contacts")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: it should not be necessary to set the connection in read-only mode for this as long as we are in auto-commit mode. (Having it in read-only mode also does not hurt, so feel free to leave as-is, as long as we are confident that it would work with self._conn.read_only=False` as well.)

@ankiaga ankiaga enabled auto-merge (squash) January 10, 2024 11:48
@ankiaga ankiaga merged commit 0406ded into googleapis:main Jan 10, 2024
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the googleapis/python-spanner API. size: xs Pull request size is extra small.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants