accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Yates (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ACCUMULO-53) Multiple deletes cause a RuntimeException
Date Sat, 22 Oct 2011 22:50:32 GMT

     [ https://issues.apache.org/jira/browse/ACCUMULO-53?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jesse Yates updated ACCUMULO-53:
--------------------------------

    Attachment: java_ACCUMULO-53.patch

Fixing BatchDeleterImpl and adding ScannerOptions.removeIterator()
 - Adding removeIterator() method
 - Moved adding the whole-row-iterator option to BatchDeleterImpl constructor
 - Added tests for the above
 - Added EasyMock and Powermock for testing.
                
> Multiple deletes cause a RuntimeException
> -----------------------------------------
>
>                 Key: ACCUMULO-53
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-53
>             Project: Accumulo
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.3.5, 1.4.0
>            Reporter: Jesse Yates
>            Assignee: Jesse Yates
>         Attachments: java_ACCUMULO-53.patch
>
>
> 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

        

Mime
View raw message