lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <luc...@mikemccandless.com>
Subject Re: deletion of index-files fails
Date Fri, 06 Mar 2009 22:45:55 GMT
If we changed the signature (return value) then on dropping in the JAR  
you'd have to recompile your code, which violates our back compat  
goals, ie "drop in JAR and run".

Mike

Erick Erickson wrote:

> Why would it break back compat?
> They just return void now, so
>
> IndexReader.incRef();
>
> should still compile/run.
>
> But that's arguing about angels dancing on pins. My real issue
> is that by not allowing *some* mechanism to get the refcount
> developers don't have any tools for figuring out that it's a  
> refcount issue,
> so exposing getRefCount() would satisfy that need.
>
> I'll totally defer to folks who actually maintain code to
> cast the deciding ballot.
>
> Best
> Erick
>
> On Fri, Mar 6, 2009 at 2:10 PM, Michael McCandless <
> lucene@mikemccandless.com> wrote:
>
>>
>> Yes ref counts are tricky, though these are expert APIs.
>>
>> I think changing close, incRef, decRef to return the RC would be  
>> good,
>> though that breaks back compat.
>>
>> How about exposing getRefCount() instead?
>>
>> Mike
>>
>>
>> Erick Erickson wrote:
>>
>> Hmmmm, reference counting is always yucky. I looked
>>> the IndexReader javadocs over and there isn't any help
>>> there for managing refcounts. You can't find the current
>>> refcount, close doesn't indicate the results, etc. Or I
>>> missed, for the Nth time, perfectly obvious documentation.
>>>
>>> What do people think about one or more of these options?
>>> 1> have IndexReader.close() return some indication
>>>   of what the resulting refcount is. I.e. "did the reader
>>>   *really* close.
>>> 2> have decRef do the same.
>>> 3> have incRef do the same (although this seems less useful).
>>>
>>>
>>> It's really, really hard to insure your reference counting is
>>> correct solely by code inspection <G>!
>>>
>>> yeah, yeah, yeah, this probably belongs on the dev list.
>>> I'll be happy to put it over there and/or raise a JIRA...
>>>
>>> Best
>>> Erick
>>>
>>> On Fri, Mar 6, 2009 at 11:40 AM, Michael McCandless <
>>> lucene@mikemccandless.com> wrote:
>>>
>>>
>>>> OK, phew!  Thanks for bringing closure.
>>>>
>>>> Mike
>>>>
>>>>
>>>> rolarenfan@earthlink.net wrote:
>>>>
>>>> I did just now double/triple-check: the IndexWriter is definitely  
>>>> closed.
>>>>
>>>>>
>>>>> However (cough), I did have a bogus call to  
>>>>> IndexReader.incRef() ...
>>>>> once
>>>>> I removed that, the call to IndexReader.close() actually worked  
>>>>> and then
>>>>> the
>>>>> deletion did so too. Thanks; sorry to trouble you.
>>>>>
>>>>> -Paul
>>>>>
>>>>> -----Original Message-----
>>>>>
>>>>> From: Michael McCandless <lucene@mikemccandless.com>
>>>>>> Sent: Mar 6, 2009 4:23 AM
>>>>>> To: java-user@lucene.apache.org
>>>>>> Cc: rolarenfan@earthlink.net
>>>>>> Subject: Re: deletion of index-files fails
>>>>>>
>>>>>>
>>>>>> If truly the IndexWriter & all IndexReaders are closed, then
they
>>>>>> should no longer be holding open files.  Maybe triple check that
>>>>>> you've indeed closed everything.
>>>>>>
>>>>>> It's remotely possible that some other process (virus checker,  
>>>>>> source
>>>>>> control clients, etc) has the file open.
>>>>>>
>>>>>> You could try Microsoft's (formerly sysinternals) "Process  
>>>>>> Monitor" to
>>>>>> see which processes have the files open.
>>>>>>
>>>>>> Mike
>>>>>>
>>>>>> Ian Lea wrote:
>>>>>>
>>>>>> What OS are you running?  What version of lucene?  Are you sure 

>>>>>> that
>>>>>>
>>>>>>> you have privilege to delete the files that it is failing on?
 
>>>>>>> That
>>>>>>> they are part of the index you are trying to remove?  That  
>>>>>>> something
>>>>>>> else doesn't have the files open?
>>>>>>>
>>>>>>> It seems likely that you are on Windows and that something is
 
>>>>>>> holding
>>>>>>> on to the files. I believe that Windows won't let you delete
 
>>>>>>> open
>>>>>>> files.  You could try calling File.deleteOnExit() for the  
>>>>>>> index files.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Ian.
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Mar 6, 2009 at 2:19 AM,  <rolarenfan@earthlink.net>
 
>>>>>>> wrote:
>>>>>>>
>>>>>>> So, I have a (small) Lucene index, all fine; I use it a bit,
and
>>>>>>>> then (on app shutdown) want to delete its files and the 

>>>>>>>> containing
>>>>>>>> directory (the index is intended as a temp object). At some
 
>>>>>>>> earlier
>>>>>>>> time this was working just fine, using java.io.File.delete().
 
>>>>>>>> Now
>>>>>>>> however, some of the files get deleted (segments*) whereas
 
>>>>>>>> others
>>>>>>>> fail (no Exn is thrown, just java.io.File.delete() returns
 
>>>>>>>> false:
>>>>>>>> _0.cfs, _0.cfx). I've tried closing the IndexReader (no 

>>>>>>>> IndexWriter
>>>>>>>> exists at shutdown), but that makes no diff.
>>>>>>>>
>>>>>>>> Any ideas?
>>>>>>>>
>>>>>>>> thanks
>>>>>>>> Paul
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> 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


Mime
View raw message