Uploaded image for project: 'Apache Curator'
  1. Apache Curator
  2. CURATOR-257

Thread.sleep in TestingZooKeeperMain.blockUntilStarted is costly for unit tests

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 3.0.0
    • Tests
    • None

    Description

      The TestingZooKeeperMain.blockUntilStarted() contains a Thread.sleep(1000) call. In a large battery of unit level tests (which are otherwise quick and depend on curator service discovery) this time adds up.

      Recent communication from JZ regarding the code:

      As I recall, it takes some time for the server to start up and this was a hack to make sure it’s ready. However, I no longer remember the details. Do tests work with the timeout removed?

      We are in the midst of running our battery of tests to see if removal of this sleep call causes any issues. Our set of tests starts and stops the testing server a few hundred times within the same process, so I think it will show any such issues within a few runs. If no issues appear (and the curator tests pass of course) I will post a pull request.

      A sleep of this sort is unreliable to ensure startup anyway. While it may be very unlikely for the server not to be up after 1 second, I've found with similar approaches that these types of solutions will still fail once it a while, leading to odd and hard to reproduce test failures.

      Attachments

        Issue Links

          Activity

            People

              randgalt Jordan Zimmerman
              mserrano Martin Serrano
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: