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

perfschema test failures on ARM (on Debian build system)

Details

    • 10.1.8-4, 10.0.22, 10.1.9-1

    Description

      Failing test(s): perfschema.func_file_io perfschema.func_mutex perfschema.global_read_lock perfschema.setup_objects

      Platforms:

      Example of failures:

      perfschema.func_file_io                  [ fail ]
              Test ended at 2015-08-27 22:49:48
       
      CURRENT_TEST: perfschema.func_file_io
      --- /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/func_file_io.result	2015-08-05 18:11:30.000000000 +0000
      +++ /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/func_file_io.reject	2015-08-27 22:49:48.772478431 +0000
      @@ -21,10 +21,10 @@
       AND (OBJECT_NAME LIKE '%t1.MYD'));
       SELECT (@before_count >= 0) as have_before_count;
       have_before_count
      -1
      +NULL
       SELECT IF(@before_count > 0, 'Success', 'Failure') has_instrumentation;
       has_instrumentation
      -Success
      +Failure
       SELECT * FROM t1 WHERE id < 4;
       id	b
       1	initial value
      @@ -36,10 +36,10 @@
       AND (OBJECT_NAME LIKE '%t1.MYD') AND (1 = 1));
       SELECT (@after_count >= 0) as have_after_count;
       have_after_count
      -1
      +NULL
       SELECT IF((@after_count - @before_count) > 0, 'Success', 'Failure') test_ff1_timed;
       test_ff1_timed
      -Success
      +Failure
       UPDATE performance_schema.setup_instruments SET enabled='NO';
       SET @before_count = (SELECT SUM(TIMER_WAIT)
       FROM performance_schema.events_waits_history_long
      @@ -47,7 +47,7 @@
       AND (OBJECT_NAME LIKE '%t1.MYD') AND (2 = 2));
       SELECT (@before_count >= 0) as have_before_count;
       have_before_count
      -1
      +NULL
       SELECT * FROM t1 WHERE id < 6;
       id	b
       1	initial value
      @@ -61,7 +61,7 @@
       AND (OBJECT_NAME LIKE '%t1.MYD') AND (3 = 3));
       SELECT (@after_count >= 0) as have_after_count;
       have_after_count
      -1
      +NULL
       SELECT IF((COALESCE(@after_count, 0) - COALESCE(@before_count, 0)) = 0, 'Success', 'Failure') test_ff2_timed;
       test_ff2_timed
       Success
       
      mysqltest: Result length mismatch
       
       - saving '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.func_file_io/' to '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.func_file_io/'
      perfschema.func_mutex                    [ fail ]
              Test ended at 2015-08-27 22:49:49
       
      CURRENT_TEST: perfschema.func_mutex
      --- /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/func_mutex.result	2015-08-05 18:11:30.000000000 +0000
      +++ /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/func_mutex.reject	2015-08-27 22:49:49.282435779 +0000
      @@ -40,7 +40,7 @@
       WHERE (EVENT_NAME = 'wait/synch/mutex/sql/TABLE_SHARE::tdc.LOCK_table_share'));
       SELECT IF((@after_count - @before_count) > 0, 'Success', 'Failure') test_fm1_timed;
       test_fm1_timed
      -Success
      +Failure
       UPDATE performance_schema.setup_instruments SET enabled = 'NO'
       WHERE NAME = 'wait/synch/mutex/sql/TABLE_SHARE::tdc.LOCK_table_share';
       TRUNCATE TABLE performance_schema.events_waits_history_long;
      @@ -83,7 +83,7 @@
       WHERE (EVENT_NAME = 'wait/synch/rwlock/sql/LOCK_system_variables_hash'));
       SELECT IF((@after_count - @before_count) > 0, 'Success', 'Failure') test_fm1_rw_timed;
       test_fm1_rw_timed
      -Success
      +Failure
       UPDATE performance_schema.setup_instruments SET enabled = 'NO'
       WHERE NAME = 'wait/synch/rwlock/sql/LOCK_system_variables_hash';
       TRUNCATE TABLE performance_schema.events_waits_history_long;
       
      mysqltest: Result content mismatch
       
       - saving '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.func_mutex/' to '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.func_mutex/'
      perfschema.global_read_lock              [ fail ]
              Test ended at 2015-08-27 22:49:50
       
      CURRENT_TEST: perfschema.global_read_lock
      --- /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/global_read_lock.result	2015-08-05 18:11:30.000000000 +0000
      +++ /«PKGBUILDDIR»/mysql-test/suite/perfschema/r/global_read_lock.reject	2015-08-27 22:49:50.012374729 +0000
      @@ -26,7 +26,7 @@
       from performance_schema.events_waits_current
       where event_name like "wait/synch/cond/sql/MDL_context::COND_wait_status";
       event_name	short_source	timer_end	timer_wait	operation
      -wait/synch/cond/sql/MDL_context::COND_wait_status	mdl.cc:	SET	SET	timed_wait
      +wait/synch/cond/sql/MDL_context::COND_wait_status	mdl.cc:	NULL	NULL	timed_wait
       unlock tables;
       update performance_schema.setup_instruments set enabled='NO';
       update performance_schema.setup_instruments set enabled='YES';
       
      mysqltest: Result length mismatch
       
       - saving '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.global_read_lock/' to '/«PKGBUILDDIR»/builddir/mysql-test/var/log/perfschema.global_read_lock/'

      Attachments

        Issue Links

          Activity

            I can provide access to an ARM host (64-bit armhf) if somebody wants to do their own test builds. Just mail me privately.

            otto Otto Kekäläinen added a comment - I can provide access to an ARM host (64-bit armhf) if somebody wants to do their own test builds. Just mail me privately.

            svoj,

            Since Otto can provide the environment, could you please look into the problem?

            elenst Elena Stepanova added a comment - svoj , Since Otto can provide the environment, could you please look into the problem?
            bar Alexander Barkov added a comment - - edited

            On this Scaleway virtual ARM machine:
            Linux scw-4b87ad 3.2.34-30 #17 SMP Mon Apr 13 15:53:45 UTC 2015 armv7l armv7l armv7l GNU/Linux

            mtr perfschema.func_file_io – does not fail alone.

            mtr runs that fail:

            ./mtr --sute=perfschema
            ./mtr --suite=perfschema --do-test="^(dml_|func)"
            ./mtr --suite=perfschema --do-test="^(dml_[l-z]|func)"
            ./mtr --suite=perfschema --do-test="^(dml_s|func)"
            ./mtr --suite=perfschema --do-test="^(dml_setup|func)"
            ./mtr perfschema.dml_setup_timers perfschema.func_file_io

            It seems the problem is that ARM does not implement the CYCLE timer.
            Perhaps this can help:
            https://github.com/thoughtpolice/enable_arm_pmu/blob/master/perf_event_open.c

            bar Alexander Barkov added a comment - - edited On this Scaleway virtual ARM machine: Linux scw-4b87ad 3.2.34-30 #17 SMP Mon Apr 13 15:53:45 UTC 2015 armv7l armv7l armv7l GNU/Linux mtr perfschema.func_file_io – does not fail alone. mtr runs that fail: ./mtr --sute=perfschema ./mtr --suite=perfschema --do-test="^(dml_|func)" ./mtr --suite=perfschema --do-test="^(dml_[l-z]|func)" ./mtr --suite=perfschema --do-test="^(dml_s|func)" ./mtr --suite=perfschema --do-test="^(dml_setup|func)" ./mtr perfschema.dml_setup_timers perfschema.func_file_io It seems the problem is that ARM does not implement the CYCLE timer. Perhaps this can help: https://github.com/thoughtpolice/enable_arm_pmu/blob/master/perf_event_open.c
            bar Alexander Barkov added a comment - - edited

            A related patch from the upstream is already in MariaDB tree:

            git log 49667f044197cefdb7c90b8beab3e78ec23deecd
            commit 49667f044197cefdb7c90b8beab3e78ec23deecd
            Author: Christopher Powers <chris.powers@oracle.com>
            Date:   Fri Jul 10 20:42:33 2015 +0200
             
                Bug#21374104 SETUP_TIMERS INITIALIZATION ASSUMES CYCLE TIMER IS ALWAYS AVAILABLE
                
                For WAIT events, fall back to other timers if CYCLE is not available.

            See here for details: https://bugs.mysql.com/bug.php?id=77577

            bar Alexander Barkov added a comment - - edited A related patch from the upstream is already in MariaDB tree: git log 49667f044197cefdb7c90b8beab3e78ec23deecd commit 49667f044197cefdb7c90b8beab3e78ec23deecd Author: Christopher Powers <chris.powers@oracle.com> Date: Fri Jul 10 20:42:33 2015 +0200   Bug#21374104 SETUP_TIMERS INITIALIZATION ASSUMES CYCLE TIMER IS ALWAYS AVAILABLE For WAIT events, fall back to other timers if CYCLE is not available. See here for details: https://bugs.mysql.com/bug.php?id=77577

            See also https://bugs.mysql.com/bug.php?id=77620. I see my patch for it is available in 5.7.9.

            kaamos Alexey Kopytov added a comment - See also https://bugs.mysql.com/bug.php?id=77620 . I see my patch for it is available in 5.7.9.

            People

              bar Alexander Barkov
              otto Otto Kekäläinen
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.