-
Notifications
You must be signed in to change notification settings - Fork 476
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
SPIRE Server fails to connect Percona XtraDB Cluster(PXC) #2587
Comments
If set but, the doc mentions
|
We want to use the recommended configuration as far as possible. |
We recently transitioned our read-modify-write operations to use the SERIALIZABLE isolation level for MySQL due to MySQL's weaker guarantees (relative to PostgreSQL and SQLite3) for the REPEATABLE READ isolation level, which was causing data loss. However, doing so broke Percona XtraDB Cluster which does not support explicit row-locking (including the SERIALIZABLE isolation level) except experimentally (have to turn of "strict" mode). This change restores the isolation level for read-modify-write operations to use REPEATABLE READ but changes the "read"'s to do a SELECT..FOR UPDATE, which provides the implicit row-level locking we require for to protect read-modify-write transactions from data loss. This is only done for MySQL even though PostreSQL supports it since the isolation level is sufficient. Fixes: spiffe#2587 Signed-off-by: Andrew Harding <aharding@vmware.com>
As far as I can tell "SELECT ... FOR UPDATE" is supported and is a viable alternative to SERIALIZABLE. I've got a fix in place #2605. I tested it against a Percona XtraDB cluster container but it would be good to have somebody else confirm! |
Thank you very mush for fixing it. |
We recently transitioned our read-modify-write operations to use the SERIALIZABLE isolation level for MySQL due to MySQL's weaker guarantees (relative to PostgreSQL and SQLite3) for the REPEATABLE READ isolation level, which was causing data loss. However, doing so broke Percona XtraDB Cluster which does not support explicit row-locking (including the SERIALIZABLE isolation level) except experimentally (have to turn of "strict" mode). This change restores the isolation level for read-modify-write operations to use REPEATABLE READ but changes the "read"'s to do a SELECT..FOR UPDATE, which provides the implicit row-level locking we require for to protect read-modify-write transactions from data loss. This is only done for MySQL even though PostreSQL supports it since the isolation level is sufficient. Fixes: #2587 Signed-off-by: Andrew Harding <aharding@vmware.com>
@azdagron |
Awesome! Thank you for confirming, @hiyosi! |
When using PXC(
Server version: 5.7.33-36-57-log
) as the datastore, SPIRE Server fails to connect the datastore and can not start.cf. https://www.percona.com/doc/percona-xtradb-cluster/LATEST/features/pxc-strict-mode.html#pxc-strict-mode
rel: #2150
The text was updated successfully, but these errors were encountered: