[ https://issues.apache.org/jira/browse/ACCUMULO-3931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14645138#comment-14645138 ]
Russ Weeks commented on ACCUMULO-3931: -------------------------------------- Sorry to drag this up again: I understand that multiple repeated calls to iterator() on a batch scanner will consume resources in a common thread pool and could lead to starvation. Is there some way to release those threads without consuming the whole iterator? eg. if I call scanner.setRanges, will that do it? or do I have to call scanner.close()? The use case is, my code is retrieving the first n kv pairs for a given set of ranges (yeah I get that the order of the returned keys is not guaranteed with a batch scanner) and I'm hoping that I can reuse a single scanner, not close it and re-open it for every invocation. > Repeated invocations of BatchScanner iterator().hasNext() causes MAC to > become unresponsive > ------------------------------------------------------------------------------------------- > > Key: ACCUMULO-3931 > URL: https://issues.apache.org/jira/browse/ACCUMULO-3931 > Project: Accumulo > Issue Type: Bug > Components: mini > Affects Versions: 1.6.3, 1.7.0 > Reporter: Russ Weeks > Assignee: Eric Newton > Attachments: tablet_server_0.txt, tablet_server_1.txt, > test_runner_stack.txt > > > Steps to reproduce: > # Instantiate a MiniAccumuloCluster with at least two tablet servers > # Create a table; add splits to the table. > # Add some mutations to the table distributed across the splits; flush the > mutations. > # Create a BatchScanner across the full range of the table. > # Assert that the batch scanner has at least one KV pair by calling > {{scanner.iterator().hasNext()}} > # 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) -- This message was sent by Atlassian JIRA (v6.3.4#6332)