The Doctrine_Locking_Manager_Pessimistic has a bug where instead of locking by the record's ID, it was locking by the string "id". Which obviously meant you couldn't lock two things at once.
In our use case we were more interested in tracking the request ID which created a lock rather than the user, which explains the change of language from user_ident to lock_key in the PR. The changed column name I guess is technically BC-breaking for people actively using this, so we might want to revert that. (EDIT: the BC break has been reverted) On the other hand, given how clearly broken this was, I'm not sure if there even can be people using this in prod.
The added unit test fails when run against the code before these changes.
The
Doctrine_Locking_Manager_Pessimistic
has a bug where instead of locking by the record's ID, it was locking by the string "id". Which obviously meant you couldn't lock two things at once.In our use case we were more interested in tracking the request ID which created a lock rather than the user, which explains the change of language from user_ident to lock_key in the PR. The changed column name I guess is technically BC-breaking for people actively using this, so we might want to revert that. (EDIT: the BC break has been reverted) On the other hand, given how clearly broken this was, I'm not sure if there even can be people using this in prod.
The added unit test fails when run against the code before these changes.