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

New conf test scenario for state stores: transaction order #1210

Closed
artursouza opened this issue Oct 20, 2021 · 2 comments · Fixed by #1550
Closed

New conf test scenario for state stores: transaction order #1210

artursouza opened this issue Oct 20, 2021 · 2 comments · Fixed by #1550

Comments

@artursouza
Copy link
Member

artursouza commented Oct 20, 2021

Describe the proposal

As per #1209, CosmosDb implementation does not respect the order of transactions. This was caught as we changed our E2E tests on AKS to use CosmosDB and one of the E2E tests covered this scenario while our conformance tests don't.

This proposal is to add the following scenario to conformance tests for state stores and fix the state stores that do not pass this test:

  1. Invoke Transaction API with the following operations in order:
  upsert key1 value1
  delete key1
  upsert key2 value2
  delete key3
  upsert key3 value3
  1. Validate key1 is not present.
  2. Validate key2 is present.
  3. Validate key3 is present.
@shubham1172
Copy link
Member

/assign

@shubham1172
Copy link
Member

shubham1172 commented Feb 14, 2022

Per the conformance tests run in https://github.com/dapr/components-contrib/runs/5177659685 and local testing, some results for transactional state stores:

Name Status Result Notes Issue
Azure CosmosDB Stable Fail Fails because key1 is present on alternate runs. #1209
Azure SQL Server Stable Fail Deletion is always attempted before upserts, and fails with message delete affected only 0 rows, expected 1 #1505
MongoDB Stable Pass - -
MySQL Alpha Fail Deletion is always attempted before upserts and fails because key1 is present.} #1521
PostgreSQL Alpha Fail Same as MySQL #1522
Redis Stable Pass - -

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment