PXC-4799 : PXC member used for backups fails with Inconsistency when … #5809
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…pending DDL clashes with FTRWL".
Draft fix for local deadlock issue.
Ensure that CREATE TABLE statement (and other DDL statements) acquires protection against Backup Lock first (i.e. IX lock on BACKUP_LOCK MDL singleton) and only then tries to acquire protection against Global Read Lock (i.e. IX lock on GLOBAL MDL singleton) and not vice versa.
This allows to avoid deadlock which sometimes occured and resulted in CREATE TABLE failure with appropriate error when mydumper backup tool was run concurrently. This (as well as some other) backup tool does LOCK INSTANCE FOR BACKUP first (which acquires S lock on BACKUP_LOCK singleton) and then does FLUSH TABLES WITH READ LOCK (which acquires S lock on GLOBAL MDL singleton). Acquiring conflicting lock in opposite order is deadlock-prone.