You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Jeffrey Manno (Jira)" <ji...@apache.org> on 2021/02/03 16:49:00 UTC

[jira] [Resolved] (ACCUMULO-2407) InMemoryMap MemoryIterator closure misses dump file readers

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

Jeffrey Manno resolved ACCUMULO-2407.
-------------------------------------
    Resolution: Fixed

This has been fixed in [-ACCUMULO-3913-|https://issues.apache.org/jira/browse/ACCUMULO-3913]

> InMemoryMap MemoryIterator closure misses dump file readers
> -----------------------------------------------------------
>
>                 Key: ACCUMULO-2407
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2407
>             Project: Accumulo
>          Issue Type: Bug
>          Components: tserver
>    Affects Versions: 1.4.4, 1.5.0
>            Reporter: Bill Havanki
>            Priority: Major
>
> The {{InMemoryMap}} class uses a {{SourceSwitchingIterator}} to enable switching over from iterating through memory to through a dump file. The switching iterator uses a {{MemoryDataSource}} which maintains a list of the dump file iterators (readers) in use. The {{MemoryIterator}}, when closing, uses this list to close the readers.
> However, two different {{MemoryDataSource}} instances are constructed when iteration is established.
> {code}
> MemoryDataSource mds = new MemoryDataSource();  // MDS #1
> SourceSwitchingIterator ssi = new SourceSwitchingIterator(new MemoryDataSource());  // MDS #2
> MemoryIterator mi = new MemoryIterator(new PartialMutationSkippingIterator(ssi, mc));
> mi.setSSI(ssi);
> mi.setMDS(mds);
> {code}
> MDS #2 is the one that the switching iterator uses and which maintains the reader list. However, MDS #1 is the one that the memory iterator looks at during closing for readers to close, but it is never used. It's highly likely that the same instance should be used for both.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)