[
https://issues.apache.org/jira/browse/LUCENE-5553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simon Willnauer resolved LUCENE-5553.
-------------------------------------
Resolution: Fixed
Fix Version/s: 5.0
4.8
Assignee: Simon Willnauer
Lucene Fields: New,Patch Available (was: New)
> IndexReader#ReaderClosedListener is not always called on IndexReader#close()
> ----------------------------------------------------------------------------
>
> Key: LUCENE-5553
> URL: https://issues.apache.org/jira/browse/LUCENE-5553
> Project: Lucene - Core
> Issue Type: Bug
> Components: core/index
> Affects Versions: 4.7, 5.0
> Reporter: Simon Willnauer
> Assignee: Simon Willnauer
> Priority: Blocker
> Fix For: 4.8, 5.0, 4.7.1
>
> Attachments: LUCENE-5553.patch, LUCENE-5553.patch, LUCENE-5553.patch
>
>
> Today IndexReader#ReaderClosedListener might not be called if the last
> IndexReader#decRef() call runs into an exception on IndexReader#doClose().
> Today we just reset the refCount and never go and call the listeners. There
> seem to be a bunch of problems here along the same lines but IMO if we close
> a reader it should close all resources no matter what exception it runs into.
> What this should do is call the close listeners in a finally block and then
> rethrow the exception. The real problem here for apps relying on the listener
> to release resources is that you might leak memory or file handles or whatnot
> which I think is a bug how we handle closing the IR. As a side-note I think
> we should never reset the reference here to be honest.
> Along the same lines I think we need to fix the loop in
> IndexReader#notifyReaderClosedListeners() to make sure we call all of them in
> the case any of them throws an exception. It also seems that
> SegmentCoreReaders#decRef() has a similar problem where for instance a
> fieldsReader can throw an exception on close and we never call the core
> listeners.
> IMO we need to fix this for 4.7.1
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]