Details

    Description

      This test is (in 10.0.2 at least) unstable. Sometimes SELECT returns incorrect number of pages, namely from before the operation. But if the test is modified to repeat the same SELECT many (e.g. 10) times, then one can see that the number of pages eventually changes to the correct one. There's obviously a race condition here.

      One way of fixing the test is to use include/wait_condition.inc and wait for the number of pages to reach the correct value. If the test times out, it would mean a bug.

      Attachments

        Issue Links

          Activity

            I do not understand the suggested fix. All the failures I see in the buildbot test failure database start with this:

            +Timeout in wait_condition.inc for SELECT VARIABLE_VALUE < 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS
            +WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE'
            +Id User Host db Command Time State Info Progress
            +1 root localhost test Query 0 NULL show full processlist 0.000

            So there is already a timeout in a wait_condition, I do not understand how adding another condition can fix this?

            knielsen Kristian Nielsen added a comment - I do not understand the suggested fix. All the failures I see in the buildbot test failure database start with this: +Timeout in wait_condition.inc for SELECT VARIABLE_VALUE < 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS +WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE' +Id User Host db Command Time State Info Progress +1 root localhost test Query 0 NULL show full processlist 0.000 So there is already a timeout in a wait_condition, I do not understand how adding another condition can fix this?

            Ok, I think I found it.
            The test manipulates how purge is done, but the manipulating, debug-only code only works for main thread purge, not for background thread purge.
            And while plain innodb has innodb_purge_threads=0 by default, xtradb has it default to 1.

            Testing a fix now ...

            knielsen Kristian Nielsen added a comment - Ok, I think I found it. The test manipulates how purge is done, but the manipulating, debug-only code only works for main thread purge, not for background thread purge. And while plain innodb has innodb_purge_threads=0 by default, xtradb has it default to 1. Testing a fix now ...

            Fix pushed to 5.5.

            The fix is to explicitly set innodb_purge_threads=0 for this test case. Since xtradb defaults to 1, and the debug code used by the test does not work correctly with background purge.

            knielsen Kristian Nielsen added a comment - Fix pushed to 5.5. The fix is to explicitly set innodb_purge_threads=0 for this test case. Since xtradb defaults to 1, and the debug code used by the test does not work correctly with background purge.

            Opened to change priority

            monty Michael Widenius added a comment - Opened to change priority

            The test is still disabled in 10.0. When I enable it — it still fails.

            serg Sergei Golubchik added a comment - The test is still disabled in 10.0. When I enable it — it still fails.

            revno: 4471
            committer: Jan Lindström <jplindst@mariadb.org>
            branch nick: 10.0-bugs
            timestamp: Mon 2014-11-03 15:47:57 +0200
            message:
            MDEV-4396: Fix innodb.innodb_bug14676111 test.

            jplindst Jan Lindström (Inactive) added a comment - revno: 4471 committer: Jan Lindström <jplindst@mariadb.org> branch nick: 10.0-bugs timestamp: Mon 2014-11-03 15:47:57 +0200 message: MDEV-4396 : Fix innodb.innodb_bug14676111 test.

            People

              jplindst Jan Lindström (Inactive)
              serg Sergei Golubchik
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.