User tests: Successful: Unsuccessful:
Since Mysql releases all table locks anytime we query LOCK/UNLOCK TABLES, any subsequent call of JTable::_lock() or JTable::_unlock() during complex operations causes unlocking all tables so this breaks condition of atomicity.
Examples of such calls are calling to _lock() and _unlock() on assets table in JTableNested::delete() or calling JTableNested::moveByReference() inside JTableNested::store().
So I suggest my solution:
Since LOCK TABLES query locks tables for session, I think that it should be handled by JDatabaseDriver in future and since we want atomicity, the good way would be to get all tables that need to be locked in controller so we can store data in multiple tables without race condition.
Pull Request for Issue # .
Status | New | ⇒ | Pending |
Category | ⇒ | Libraries |
It has been a very long time since this PR was submitted and as there has been no response to the comments and no tests I am closing this as an abandoned PR. It can always be reopened if updated
Status | Pending | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2018-07-22 09:06:44 |
Closed_By | ⇒ | brianteeman |
Can you look at resolving the conflicts so that this can be tested please.