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

main.sp fails sporadically in buildbot

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 5.5, 10.0, 10.2
    • Fix Version/s: 5.5, 10.0, 10.2
    • Component/s: Tests
    • Labels:
      None

      Description

      The failure happens extremely rarely, according to the cross-reference, it was only observed twice – once about 2 years ago, and again now:
      http://buildbot.askmonty.org/buildbot/builders/kvm-deb-lucid-amd64/builds/4481/steps/test_4/logs/stdio

      main.sp                                  w2 [ fail ]
              Test ended at 2015-03-25 22:00:00
       
      CURRENT_TEST: main.sp
      /usr/bin/mysqltest: Error on delete of '/dev/shm/var/2/tmp//t1.frm' (Errcode: 2 "No such file or directory")
      /usr/bin/mysqltest: Error on delete of '/dev/shm/var/2/tmp//t1.MYD' (Errcode: 2 "No such file or directory")
      --- /usr/share/mysql/mysql-test/r/sp.result	2015-03-25 18:26:14.000000000 +0100
      +++ /dev/shm/var/2/log/sp.reject	2015-03-25 22:00:00.224016249 +0100
      @@ -7722,7 +7722,7 @@
       Handler_read_first	0
       Handler_read_key	2
       Handler_read_last	0
      -Handler_read_next	4097
      +Handler_read_next	0
       Handler_read_prev	0
       Handler_read_rnd	0
       Handler_read_rnd_deleted	0
       
      mysqltest: Result length mismatch
      

      Looking at the corresponding fragment in the test/result files, I don't see how it can happen apart from a genuine race condition in the server, when the status is queried before it got updated (but I don't know if it's even possible).

      Here is what the test does there:

      CREATE FUNCTION tdn() RETURNS int(7) DETERMINISTIC RETURN to_days(now());
      CREATE TABLE t1 (pk INT NOT NULL AUTO_INCREMENT PRIMARY KEY, daynum INT, a CHAR(1), INDEX(daynum), INDEX(a)) ENGINE=MyISAM;
      INSERT INTO t1 (daynum) VALUES (1),(2),(3),(4),(5),(TO_DAYS(NOW())),(7),(8);
      INSERT INTO t1 (daynum) SELECT a1.daynum FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5;
      FLUSH TABLES;
      FLUSH STATUS;
      SHOW STATUS LIKE '%Handler_read%';
      Variable_name	Value
      Handler_read_first	0
      Handler_read_key	0
      Handler_read_last	0
      Handler_read_next	0
      Handler_read_prev	0
      Handler_read_rnd	0
      Handler_read_rnd_deleted	0
      Handler_read_rnd_next	0
      UPDATE t1 SET a = '+' WHERE daynum=tdn();
      SHOW STATUS LIKE '%Handler_read%';
      Variable_name	Value
      Handler_read_first	0
      Handler_read_key	2
      Handler_read_last	0
      Handler_read_next	4097
      Handler_read_prev	0
      Handler_read_rnd	0
      Handler_read_rnd_deleted	0
      Handler_read_rnd_next	0
      drop function tdn;
      drop table t1;
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                elenst Elena Stepanova
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: