accumulo-dev mailing list archives

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

    [ https://issues.apache.org/jira/browse/ACCUMULO-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13137303#comment-13137303
] 

Jesse Yates commented on ACCUMULO-53:
-------------------------------------

@John: +1 

I'll create a new ticket for doing the refactor of the options and target it at 1.5

@Billie:
I think if the community is ok with the mocking I'm using here, then v1 of the patch can be
accepted. It just does the change for the batch deleter and adds unit tests.
                
> 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, java_ACCUMULO-53_v2.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