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

Flaky test: TestTableShell

    XMLWordPrintableJSON

Details

    Description

      The test is running the following Ruby commands:

      # Instert test data
      @test_table.put(1, "x:a", 1)
      @test_table.put(2, "x:raw1", 11)
      @test_table.put(2, "x:raw1", 11)
      @test_table.put(2, "x:raw1", 11)
      @test_table.put(2, "x:raw1", 11)
      

      And validate the versions with:

      args = { VERSIONS => 10, RAW => true } # Since 4 versions of row with rowkey 2 is been added, we can use any number >= 4 for VERSIONS to scan all 4 versions.
      num_rows = 0
      @test_table._scan_internal(args) do # Raw Scan
        num_rows += 1
      end
      # 5 since , 1 from row key '1' and other 4 from row key '4'
      assert_equal(num_rows, 5,
                   'Num rows scanned without RAW/VERSIONS are not 5')
      

      Which sometimes (almost always on fast machines) fails, because it only finds 3 versions out of 4. I believe this due to commands are running too fast and inserts data with same timestamp, so HBase cannot distinguish them. I'd like to add some sleep between puts to fix it.

      Attachments

        Issue Links

          Activity

            People

              andor Andor Molnar
              andor Andor Molnar
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: