Package: python-oslo.db / 17.2.1-3

Metadata

Package Version Patches format
python-oslo.db 17.2.1-3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
Add_MariaDB_error_1020_handling_as_DBConsistencyError_subclass_of_DBDeadlock.patch | (download)

oslo_db/exception.py | 23 19 + 4 - 0 !
oslo_db/sqlalchemy/exc_filters.py | 19 19 + 0 - 0 !
oslo_db/tests/sqlalchemy/test_exc_filters.py | 42 42 + 0 - 0 !
releasenotes/notes/handle-mariadb-transactional-error-d84c95cdb4d3b27f.yaml | 23 23 + 0 - 0 !
4 files changed, 103 insertions(+), 4 deletions(-)

 add mariadb error 1020 handling as dbconsistencyerror subclass of dbdeadlock
 MariaDB under REPEATABLE-READ isolation level can raise error 1020
 "Record has changed since last read" when it detects that a row has
 changed since it was last read in the current transaction. This is
 part of MariaDB's transaction validation model and has been observed
 in OpenStack services like Nova and Keystone.
 .
 This change adds:
 * New DBConsistencyError exception class that inherits from DBDeadlock
 * Updated DBDeadlock docstring to cover all concurrent access conflicts
 * Filter in exc_filters.py to detect and handle MariaDB error 1020
 * Unit tests to verify proper detection and wrapping
 .
 The inheritance model ensures that existing retry decorators and error
 handling code that catch DBDeadlock will automatically handle this new
 MariaDB consistency error, providing seamless backward compatibility
 while properly categorizing the error as a transient concurrency issue.
 .
 This provides better error handling for applications using oslo.db
 with MariaDB and allows existing retry mechanisms to work without
 modification.
 .
 For more details about this new isolation level in InnoDB, please
 see https://mariadb.com/resources/blog/isolation-level-violation-testing-and-debugging-in-mariadb/
Bug: https://launchpad.net/bugs/2116186