From aec0b541672d66fe0c34816b1c1b5a6bdeffccd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Sun, 25 Apr 2021 04:48:36 +0200 Subject: [PATCH] fix: check for timeout in connection after last statement finished (#1086) The check whether the previous statement timed out in the Connection API was done when a statement was submitted to the connection, and not when the statement was executed. That could cause a race condition, as statements are executed using a separate thread, while submitting a statement is done using the main thread. This could cause a statement to return an error with code ABORTED instead of FAILED_PRECONDITION. A statement on a read/write transaction would always return an error when a/the previous statement timed out, only the error code could be different depending on whether the race condition occurred or not. This is now fixed so that the error code is always FAILED_PRECONDITION and the error indicates that a read/write transaction is no longer usable after a statement timeout. Fixes #1077