Shai Erera created LUCENE-5885:
----------------------------------
Summary: MergeScheduler should not implement Closeable
Key: LUCENE-5885
URL: https://issues.apache.org/jira/browse/LUCENE-5885
Project: Lucene - Core
Issue Type: Bug
Components: core/index
Reporter: Shai Erera
MergeScheduler implements Closeable and IndexWriter calls ms.close() when it's
closed. But MergeScheduler can be shared between several writers, which means
closing it by any particular writer is wrong. We should rather implement some
ref-counting logic such that each IW will call incRef() in the ctor, and
decRef() on close(), and MergeScheduler will truly close when the ref-count
hits 0.
As it is now, if you share a MergeScheduler between writers and close() does
something terminating, I doubt if it really works.
Also, when I look at ConcurrentMergeScheduler.close(), it calls sync() which
joins all MergeThreads. But if that CMS instance is shared between few IWs,
doesn't it mean that a single IW calling close() waits on MergeThreads that
execute merges of other IWs!?!? This seems ... wrong?
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]