madelson / DistributedLock

A .NET library for distributed synchronization
MIT License
1.75k stars 182 forks source link

UseMultiplexing causes errors on old mysql/mariadb versions #123

Closed threegerbils closed 2 years ago

threegerbils commented 2 years ago

On mysql versions before 5.7, mariadb versions before 10.0.2 only one lock can be held per connection. Connection reuse causes any lock held to be released as soon as another lock is acquired.

madelson commented 2 years ago

Hi @tvoyle thanks for reporting. Given that there are old versions and multiplexing can be disabled via options, this seems like something that should go into the documentation rather than something to change in the library.

If you provide me with the error numbers and SQL States associated with this error we can add a new error handling case here that would throw a more descriptive error message telling you to disable multiplexing when using the older database version.

Does that path make sense?

madelson commented 2 years ago

Seems like this is not an error; it just releases previous locks. See "important" note here: https://dev.mysql.com/doc/refman/5.6/en/locking-functions.html