[MDEV-4017] GET_LOCK() with negative timeouts has strange behavior Created: 2013-01-09  Updated: 2015-07-29  Resolved: 2015-07-29

Status: Closed
Project: MariaDB Server
Component/s: OTHER
Affects Version/s: 10.0.0, 5.5.28a, 5.3.11, 5.2.13, 5.1.66
Fix Version/s: 5.5.45, 10.0.21, 10.1.7

Type: Bug Priority: Minor
Reporter: Federico Razzoli Assignee: Sergey Vojtovich
Resolution: Fixed Votes: 0
Labels: upstream
Environment:

5.5



 Description   

I know that passing a negative timeout to GET_LOCK() makes no sense. But if you do it by mistake (perhaps with dynamic sql) there are 2 cases:

  • If the number is high, it is like passing 0:

    MariaDB [(none)]> SELECT GET_LOCK('x', -100);
    +---------------------+
    | GET_LOCK('x', -100) |
    +---------------------+
    |                   0 |
    +---------------------+
    1 row in set (0.01 sec)

  • if number is very low, it considers it as a positive number (you will need to kill the query):

    SELECT GET_LOCK('x', -1500000000);

    In both cases, I get no errors or warnings.



 Comments   
Comment by Federico Razzoli [ 2013-01-09 ]

Of course the first case is ok, but I think that the second case (very low negatives considered as positive) is a bug.

Comment by Elena Stepanova [ 2013-01-09 ]

It's an upstream issue, except that in MySQL up to and including 5.6 even GET_LOCK('x', -10) hangs seemingly forever (as well as in MariaDB 5.1/5.2).

Comment by Sergey Vojtovich [ 2015-07-23 ]

bar, please review fix for this bug.

Comment by Alexander Barkov [ 2015-07-24 ]

Okey to push, with a minor suggestion.

Generated at Thu Feb 08 06:53:04 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.