[ https://issues.apache.org/jira/browse/LUCENE-1726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Rutherglen updated LUCENE-1726: ------------------------------------- Attachment: LUCENE-1726.patch * New SRMapValue is strongly typed * All tests pass {quote}I think there is a thread hazard here, in particular a risk that one thread decrefs a reader just as another thread is trying to get it, and the reader in fact gets closed while the other thread has an mv.reader != null and illegally increfs that. I think you'll have to do the sr.incRef inside the synchronized(this), but I don't think that entirely resolves it.{quote} Are you referring to a decref on a reader outside of IW? The asserts we have did help in catching synchronization errors. It's unclear to me how to recreate the use case described such that it breaks things. We need a test case that fails with the current patch? > IndexWriter.readerPool create new segmentReader outside of sync block > --------------------------------------------------------------------- > > Key: LUCENE-1726 > URL: https://issues.apache.org/jira/browse/LUCENE-1726 > Project: Lucene - Java > Issue Type: Improvement > Components: Index > Affects Versions: 2.4.1 > Reporter: Jason Rutherglen > Assignee: Michael McCandless > Priority: Trivial > Fix For: 3.1 > > Attachments: LUCENE-1726.patch, LUCENE-1726.patch > > Original Estimate: 48h > Remaining Estimate: 48h > > I think we will want to do something like what field cache does > with CreationPlaceholder for IndexWriter.readerPool. Otherwise > we have the (I think somewhat problematic) issue of all other > readerPool.get* methods waiting for an SR to warm. > It would be good to implement this for 2.9. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org