Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10480

TestLogRollPeriod#testWithEdits may fail due to insufficient waiting

    XMLWordPrintableJSON

Details

    • Test
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 0.98.0, 0.96.2, 0.99.0, 0.94.17
    • test
    • None

    Description

      The test waits for minRolls rolls by sleeping:

          Thread.sleep((minRolls + 1) * LOG_ROLL_PERIOD);
      

      However, the above wait period may not be sufficient.
      See https://builds.apache.org/job/HBase-TRUNK/4895/testReport/junit/org.apache.hadoop.hbase.regionserver.wal/TestLogRollPeriod/testWithEdits/ :

      2014-02-06 23:02:25,710 DEBUG [RS:0;quirinus:56476.logRoller] regionserver.LogRoller(87): Hlog roll period 4000ms elapsed
      ...
      2014-02-06 23:02:30,275 DEBUG [RS:0;quirinus:56476.logRoller] regionserver.LogRoller(87): Hlog roll period 4000ms elapsed
      

      The interval between two successive periodic rolls was ~1.5s longer than LOG_ROLL_PERIOD (4s)
      1.5s * 4 (minRolls-1) > 4s (LOG_ROLL_PERIOD)

      This led to the test failure:

      java.lang.AssertionError
      	at org.junit.Assert.fail(Assert.java:86)
      	at org.junit.Assert.assertTrue(Assert.java:41)
      	at org.junit.Assert.assertFalse(Assert.java:64)
      	at org.junit.Assert.assertFalse(Assert.java:74)
      	at org.apache.hadoop.hbase.regionserver.wal.TestLogRollPeriod.checkMinLogRolls(TestLogRollPeriod.java:168)
      	at org.apache.hadoop.hbase.regionserver.wal.TestLogRollPeriod.testWithEdits(TestLogRollPeriod.java:130)
      

      Attachments

        1. HBASE-10480-v0.patch
          1 kB
          Matteo Bertozzi

        Activity

          People

            mbertozzi Matteo Bertozzi
            yuzhihong@gmail.com Ted Yu
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: