Make commit_unknown_results unlikely - PR status

@andrew.noyes As I was updating the design document, I noticed a discrepancy between documentation and a forum post for transaction_timed_out and transaction_cancelled.

In the FDB documentation section for Non-Retryable Errors, it is mentioned that we will get a transaction_timed_out error in-case we set a timeout in our transaction options.

However, this forum post by @alloc seems to indicate that we will get a transaction_cancelled error.

I was wondering if there was some subtlety that I might be missing here?

In order understand the error conditions better, I’ve created the following table. Could you please let me know in case there is a mistake.

Error Name on_error retry? Possible in-flight transaction
commit_unknown_result Yes No
cluster_version_changed Yes Yes
operation_cancelled No Yes
transaction_timed_out No Yes
transaction_cancelled ??? ???

Regarding transaction_cancelled, is it something on_error automatically retries? Also from a FDB client perspective, does the possibility of an in-flight transaction exist when we get a transaction_cancelled error?