ZooKeeper
  1. ZooKeeper
  2. ZOOKEEPER-1351

invalid test verification in MultiTransactionTest

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.4.0
    • Fix Version/s: 3.4.3, 3.5.0
    • Component/s: tests
    • Labels:
      None

      Description

      tests such as org.apache.zookeeper.test.MultiTransactionTest.testWatchesTriggered() are incorrect. Two issues I see

      1) zk.sync is async, there is no guarantee that the watcher will be called subsequent to sync returning

              zk.sync("/", null, null);
              assertTrue(watcher.triggered); /// incorrect assumption
      

      The callback needs to be implemented, only once the callback is called can we verify the trigger.

      2) trigger is not declared as volatile, even though it will be set in the context of a different thread (eventthread)

      See https://builds.apache.org/view/S-Z/view/ZooKeeper/job/ZooKeeper-trunk-solaris/91/testReport/junit/org.apache.zookeeper.test/MultiTransactionTest/testWatchesTriggered/
      for an example of a false positive failure

      junit.framework.AssertionFailedError
      	at org.apache.zookeeper.test.MultiTransactionTest.testWatchesTriggered(MultiTransactionTest.java:236)
      	at org.apache.zookeeper.JUnit4ZKTestRunner$LoggedInvokeMethod.evaluate(JUnit4ZKTestRunner.java:52)
      
      1. ZOOKEEPER-1351.patch
        5 kB
        Patrick Hunt
      2. ZOOKEEPER-1351_br34.patch
        6 kB
        Patrick Hunt

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Patch Available Patch Available
        1h 5m 1 Patrick Hunt 05/Jan/12 00:01
        Patch Available Patch Available Resolved Resolved
        11d 2h 34m 1 Camille Fournier 16/Jan/12 02:35
        Hide
        Hudson added a comment -

        Integrated in ZooKeeper-trunk #1429 (See https://builds.apache.org/job/ZooKeeper-trunk/1429/)
        ZOOKEEPER-1351. invalid test verification in MultiTransactionTest (phunt via camille)

        camille : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1231809
        Files :

        • /zookeeper/trunk/CHANGES.txt
        • /zookeeper/trunk/src/java/test/org/apache/zookeeper/test/MultiTransactionTest.java
        Show
        Hudson added a comment - Integrated in ZooKeeper-trunk #1429 (See https://builds.apache.org/job/ZooKeeper-trunk/1429/ ) ZOOKEEPER-1351 . invalid test verification in MultiTransactionTest (phunt via camille) camille : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1231809 Files : /zookeeper/trunk/CHANGES.txt /zookeeper/trunk/src/java/test/org/apache/zookeeper/test/MultiTransactionTest.java
        Camille Fournier made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Camille Fournier added a comment -

        svn trunk revision 1231809

        Show
        Camille Fournier added a comment - svn trunk revision 1231809
        Hide
        Camille Fournier added a comment -

        Looks good to me. Will check this in.

        Show
        Camille Fournier added a comment - Looks good to me. Will check this in.
        Hide
        Hadoop QA added a comment -

        +1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12509480/ZOOKEEPER-1351.patch
        against trunk revision 1227000.

        +1 @author. The patch does not contain any @author tags.

        +1 tests included. The patch appears to include 3 new or modified tests.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed core unit tests.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//testReport/
        Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
        Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - +1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12509480/ZOOKEEPER-1351.patch against trunk revision 1227000. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/877//console This message is automatically generated.
        Patrick Hunt made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Hide
        Patrick Hunt added a comment -

        These two patches fix the watch tests, I also took the opportunity to cleanup the setup/teardown of the test.

        Note: the br34 test introduces these two tests for 3.4.x, they were missing on that branch. I think it's a good idea to include them.

        Show
        Patrick Hunt added a comment - These two patches fix the watch tests, I also took the opportunity to cleanup the setup/teardown of the test. Note: the br34 test introduces these two tests for 3.4.x, they were missing on that branch. I think it's a good idea to include them.
        Patrick Hunt made changes -
        Attachment ZOOKEEPER-1351.patch [ 12509480 ]
        Patrick Hunt made changes -
        Field Original Value New Value
        Attachment ZOOKEEPER-1351_br34.patch [ 12509479 ]
        Patrick Hunt created issue -

          People

          • Assignee:
            Patrick Hunt
            Reporter:
            Patrick Hunt
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development