You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
org.postgresql.util.PSQLException: ERROR: IO error: Errors occured while reaching out to the tablet servers: . Errors from tablet servers: [Operation failed.
Try again. (yb/docdb/conflict_resolution.cc:71): e4552f37-0bc4-4b83-8a00-2b95904fca37 Conflicts with higher priority transaction: 1fadf177-d727-45d2-aab1-c1f5
605e67b4 (transaction error 3), Operation failed. Try again. (yb/docdb/conflict_resolution.cc:71): e4552f37-0bc4-4b83-8a00-2b95904fca37 Conflicts with higher
priority transaction: e3b525ca-28d6-4275-a0ba-b491b5e8fdc8 (transaction error 3)]
Reason: After parallelizing SELECT requests in some scenarios (SELECT COUNT(*) for example) multiple read commands can fail in one batch. PgSession class returns wrong status ins this case and restart mechanism can't restart operation.
The text was updated successfully, but these errors were encountered:
…ead operations
Summary:
For now `SELECT` command can generate multiple `PgDocReadOp` and execute them in single batch by calling `PgSession::RunAsync` method which takes list of operations.
These read operations can conflicts with running transaction. Status for these operations will be `Status::TryAgain` with appropriate error code(s). It could be `YBPgErrorCode`, `TransactionErrorCode` or other.
`PgSession` return single status as a result of `PgSession::RunAsync` method. Base of this status upper level will try to restart operations in case no data was sent to users.
In case all failed operations has status with same code and same additional error codes single status is returned with same this code and additional error codes. Message of new status enumerates all error statuses with prefix `Multiple homogeneous errors`.
Example: single `TryAgain` status constructed from 2 homogeneous statuses (status messages may be different):
```
Operation failed. Try again. (yb/yql/pggate/pg_session.cc:169): Multiple homogeneous errors: [
Operation failed. Try again. (yb/tablet/running_transaction.cc:385): Transaction aborted: b8f9ae55-3c84-4ed6-8354-fafbb8cb803f (pgsql error 25P02),
Operation failed. Try again. (yb/tablet/transaction_participant.cc:263): Unknown transaction, could be recently aborted: b8f9ae55-3c84-4ed6-8354-fafbb8cb803f (pgsql error 25P02)] (pgsql error 25P02)
```
Test Plan:
Run existed unit test
`./yb_build.sh --java-test org.yb.pgsql.TestPgReadRestarts#selectCountPrepared`
Reviewers: raju, mihnea, alex
Reviewed By: alex
Subscribers: yql
Differential Revision: https://phabricator.dev.yugabyte.com/D8144
Test fails with the following error
Reason: After parallelizing
SELECT
requests in some scenarios (SELECT COUNT(*)
for example) multiple read commands can fail in one batch.PgSession
class returns wrong status ins this case and restart mechanism can't restart operation.The text was updated successfully, but these errors were encountered: