Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-14831

CREATE OR REPLACE SEQUENCE under LOCK TABLE corrupts the sequence, causes ER_KEY_NOT_FOUND

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.3
    • Fix Version/s: 10.3.6
    • Component/s: Sequences
    • Labels:
    • Environment:
      b8c92d752c34e51dbe8ed551542415e2481581d7 and earlier

      Description

      CREATE SEQUENCE seq1;
      LOCK TABLE seq1 WRITE;
       
      CREATE OR REPLACE SEQUENCE seq1;
      UNLOCK TABLES;
       
      SELECT NEXTVAL(seq1);
       
      # Cleanup
      DROP SEQUENCE seq1;
      

      Strange behavior starts at CREATE OR REPLACE SEQUENCE, it ends with an unexpected error ER_TABLE_NOT_LOCKED:

      MariaDB [test]> CREATE OR REPLACE SEQUENCE seq1;
      ERROR 1100 (HY000): Table 'seq1' was not locked with LOCK TABLES
      MariaDB [test]> UNLOCK TABLES;
      Query OK, 0 rows affected (0.00 sec)
      

      Further attempts to use the sequence cause ER_KEY_NOT_FOUND:

      MariaDB [test]> SELECT NEXTVAL(seq1);
      ERROR 1032 (HY000): Can't find record in 'seq1'
      

        Attachments

          Activity

            People

            Assignee:
            monty Michael Widenius
            Reporter:
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: