Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-3931

Repeated invocations of BatchScanner iterator().hasNext() causes MAC to become unresponsive

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not A Problem
    • 1.6.3, 1.7.0
    • None
    • mini
    • None

    Description

      Steps to reproduce:

      1. Instantiate a MiniAccumuloCluster with at least two tablet servers
      2. Create a table; add splits to the table.
      3. Add some mutations to the table distributed across the splits; flush the mutations.
      4. Create a BatchScanner across the full range of the table.
      5. Assert that the batch scanner has at least one KV pair by calling scanner.iterator().hasNext()
      6. Repeat.

      It doesn't seem to matter if you close the scanner and create a new one in between calls to hasNext, or if you re-seek the same scanner, or if the scanner is created in a static context and re-used by multiple tests or created by each test. Eventually you will see that the TabletServerBatchReaderIterator gets stuck polling its resultsQueue, preventing further tests from running.

      This happens roughyl 20% of the time in 1.6 when I run mvn clean test -Dtest=org.apache.accumulo.minicluster.MultipleHasNextTest --projects minicluster, maybe less often in 1.7, and 100% of the time when I try to use the MAC in my company's product build environment, which uses gradle.

      (I'll update with a link to a failing unit test as soon as I get an issue ID)

      Attachments

        1. test_runner_stack.txt
          29 kB
          Russ Weeks
        2. tablet_server_1.txt
          64 kB
          Russ Weeks
        3. tablet_server_0.txt
          52 kB
          Russ Weeks

        Activity

          People

            ecn Eric C. Newton
            rweeks Russ Weeks
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h
                1h