Multiple deletes cause a RuntimeException
-----------------------------------------

                 Key: ACCUMULO-53
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-53
             Project: Accumulo
          Issue Type: Bug
          Components: tserver
    Affects Versions: 1.3.5, 1.4.0
            Reporter: Jesse Yates
            Assignee: Keith Turner


Pretty sure this affects 1.3.5, though it may also on 1.4.0 (haven't tested on 
the latter, but the code looks the same).

When a BatchDeleter is used multiple times on the same time, it doesn't reset 
the scan iterators, leading to runtime exceptions when there are multiple calls 
to delete().

Below, we can see that it adds a scan iterator to get the list of values in the 
table. Since it just sets the name of the deleter to 
"org.apache.accumulo.core.client.BatchDeleter.NOVALUE" every time. So when you 
go to run the scan a second time, it attempts set the same scan iterator again.

{code}
        public void delete() throws MutationsRejectedException, 
TableNotFoundException {
                super.addScanIterator(new IteratorSetting(Integer.MAX_VALUE, 
BatchDeleter.class.getName() + ".NOVALUE", SortedKeyIterator.class));
{code}

This results in a RuntimeException telling you that the 'Iterator name is 
already in use'.

After doing the delete, the BatchDeleter should remove that iterator (possibly 
just clear all iterators) when done with the delete.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to