Return-Path: Delivered-To: apmail-lucene-java-user-archive@www.apache.org Received: (qmail 79271 invoked from network); 8 Apr 2010 21:53:36 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 8 Apr 2010 21:53:36 -0000 Received: (qmail 71719 invoked by uid 500); 8 Apr 2010 21:53:34 -0000 Delivered-To: apmail-lucene-java-user-archive@lucene.apache.org Received: (qmail 71680 invoked by uid 500); 8 Apr 2010 21:53:34 -0000 Mailing-List: contact java-user-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-user@lucene.apache.org Delivered-To: mailing list java-user@lucene.apache.org Received: (qmail 71672 invoked by uid 99); 8 Apr 2010 21:53:34 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Apr 2010 21:53:34 +0000 X-ASF-Spam-Status: No, hits=-1.0 required=10.0 tests=AWL,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of simon.willnauer@googlemail.com designates 209.85.220.216 as permitted sender) Received: from [209.85.220.216] (HELO mail-fx0-f216.google.com) (209.85.220.216) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Apr 2010 21:53:29 +0000 Received: by fxm8 with SMTP id 8so2387497fxm.5 for ; Thu, 08 Apr 2010 14:53:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:reply-to:in-reply-to :references:date:received:message-id:subject:from:to:content-type :content-transfer-encoding; bh=JbK/2PuMeBfTIWwVa3qgpuNNLffyDy0ZJKSfFJ0+m/c=; b=Ow7xRWLQKZ02G77mU+iIkHU+zF+FPNjwJNM4bwMs4yg1NBfTab5qK6zA7MgM1FXW4K MRVsURKWMYmAic6fis810srOZImlVXgwiKgEziVwos3rxTT4pqbCEYea0EUC8NwKHm0E dQ/sCPROwRCMSv14e80Hwl/s9KpbbcNlgI+Pg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:content-type:content-transfer-encoding; b=D+tfBmfqhY6nalaENc4tyYm1NjumlfjIl3KcpiqTHd+kz3FF72KYDoi3mcyoahh0iW puxwTZpWVrSfAP4o19SkTBQT/PxuwYbEHkxqyc61wVMITec4sHrUGz5YHryjDHIr8p+2 haNZnAX3C3P52QMp1mRT3+zXuqm2nj+ItlLb8= MIME-Version: 1.0 Received: by 10.239.191.139 with HTTP; Thu, 8 Apr 2010 14:53:08 -0700 (PDT) Reply-To: simon.willnauer@gmail.com In-Reply-To: <460972.59186.qm@web32902.mail.mud.yahoo.com> References: <11118.59029.qm@web32901.mail.mud.yahoo.com> <463439.27658.qm@web32906.mail.mud.yahoo.com> <460972.59186.qm@web32902.mail.mud.yahoo.com> Date: Thu, 8 Apr 2010 23:53:08 +0200 Received: by 10.239.190.65 with SMTP id w1mr86921hbh.126.1270763588371; Thu, 08 Apr 2010 14:53:08 -0700 (PDT) Message-ID: Subject: Re: ClosedChannelException from IndexWriter.getReader() From: Simon Willnauer To: java-user@lucene.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Argh! one more running into this issue. It still bugs me that NIOFSDirectory struggles so badly if interrupt is use= d. simon On Thu, Apr 8, 2010 at 11:19 PM, Justin wrote: > We have a custom IndexSearcher that fetches a near real-time reader and c= alls FieldCache.DEFAULT.getStrings() after a calculated length of time or w= hen certain changes are made to the index (requiring immediate searchabilit= y). =C2=A0The thread slept for that length of time unless an interrupt was = given. =C2=A0wait/notify should accomplish the same without interrupting NI= OFSDirectory. > > > > > ----- Original Message ---- > From: Michael McCandless > To: java-user@lucene.apache.org > Sent: Thu, April 8, 2010 3:50:41 PM > Subject: Re: ClosedChannelException from IndexWriter.getReader() > > OK, phew :) > > Yea warming in a separate thread is common... but why does > Thread.interrupt() come into play in your app for warming? > > Mike > > On Thu, Apr 8, 2010 at 4:38 PM, Justin wrote: >> In fact, we are using Thread.interrupt() to warm up a searcher in a sepa= rate thread (not really that uncommon, is it?). =C2=A0We may switch to Obje= ct::wait(long) and Object::notify() instead of switching the Directory impl= ementation. =C2=A0Thanks for recognizing the issue! >> >> >> >> >> ----- Original Message ---- >> From: Michael McCandless >> To: java-user@lucene.apache.org >> Sent: Thu, April 8, 2010 2:41:07 PM >> Subject: Re: ClosedChannelException from IndexWriter.getReader() >> >> Are you using Future.cancel or directly using Thread.interrupt? =C2=A0If= so >> it could be this nasty issue: >> >> =C2=A0 =C2=A0https://issues.apache.org/jira/browse/LUCENE-2239 >> >> Try temporarily using a Directory impl other than NIOFSDirectory and >> see if the problem still happens? >> >> Mike >> >> On Thu, Apr 8, 2010 at 2:14 PM, Justin wrote: >>> I'm getting a ClosedChannelException from IndexWriter.getReader(). =C2= =A0I don't think the writer has been closed and, if it were, I would expect= an AlreadyClosedException as described in the API documentation. =C2=A0Doe= s anyone have an idea what might be wrong? =C2=A0The disk is not full and t= he permissions look correct. >>> >>> Here the stack trace from revision 926791: >>> >>> java.nio.channels.ClosedChannelException >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.nio.ch.FileChannelImpl.ensureOpen(Fil= eChannelImpl.java:88) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.nio.ch.FileChannelImpl.read(FileChann= elImpl.java:613) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.store.NIOFSDirectory$NI= OFSIndexInput.readInternal(NIOFSDirectory.java:150) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.store.BufferedIndexInpu= t.readBytes(BufferedIndexInput.java:139) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.CompoundFileReade= r$CSIndexInput.readInternal(CompoundFileReader.java:257) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.store.BufferedIndexInpu= t.refill(BufferedIndexInput.java:160) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.store.BufferedIndexInpu= t.readByte(BufferedIndexInput.java:39) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.store.IndexInput.readIn= t(IndexInput.java:74) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.FieldsReader.(FieldsReader.java:114) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.SegmentReader$Cor= eReaders.openDocStores(SegmentReader.java:294) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.SegmentReader.ope= nDocStores(SegmentReader.java:590) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.IndexWriter$Reade= rPool.get(IndexWriter.java:640) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.IndexWriter$Reade= rPool.getReadOnlyClone(IndexWriter.java:591) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.DirectoryReader.<= init>(DirectoryReader.java:138) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.ReadOnlyDirectory= Reader.(ReadOnlyDirectoryReader.java:36) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.IndexWriter.getRe= ader(IndexWriter.java:423) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.apache.lucene.index.IndexWriter.getRe= ader(IndexWriter.java:387) >>> >>> Thanks, >>> Justin >>> >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org >>> For additional commands, e-mail: java-user-help@lucene.apache.org >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org >> For additional commands, e-mail: java-user-help@lucene.apache.org >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org >> For additional commands, e-mail: java-user-help@lucene.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-user-help@lucene.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-user-help@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org For additional commands, e-mail: java-user-help@lucene.apache.org