Github user milleruntime commented on the issue:

    https://github.com/apache/accumulo/pull/159
  
    Thanks for the input @dhutchis. 
    
    > Specify the contract that every iterator must close() its source. This 
strategy works if every iterator, system and user-defined, follows the 
contract. Existing iterators would need to be modified to do this, so it's a 
breaking change.
    
    I agree this is a sound strategy. The problem I am running into is our 
underlying reuse of RFiles throughout the code. This became apparent when I ran 
the BigRootTabletIT and IllegalStateException (Locality group reader closed) 
was thrown during a scan after attempting to read from a closed RFile. 
    
    I don't know how we can implement this strategy without making a 
fundamental change to how we use RFiles.  And if this is the case, then it 
would seem the risk of a change this complex, would far out weight the reward 
of something nice to have.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to