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

Flaky test: TestTableShell

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment