On Fri, Jun 22, 2012 at 11:47 AM, Simon Willnauer < simon.willna...@googlemail.com> wrote:
> > > On Fri, Jun 22, 2012 at 10:37 AM, tom <dev.tom.men...@gmx.net> wrote: > >> cross posting this issue to the dev list in the hope to get a response >> here... >> > > I think you are right. Closing the Stream / Reader is the responsibility > of the caller not the FileDictionary IMO but solr doesn't close it so that > might cause your problems. Are you running on windows by any chance? > I will create an issue and fix it. > hmm I just looked at it and I see a IOUtils.close call in FileDictionary https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_3_6/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/FileDictionary.java are you using solr 3.6? > > simon > >> >> >> -------- Original Message -------- Subject: Re: suggester/autocomplete >> locks file preventing replication Date: Thu, 21 Jun 2012 17:11:40 +0200 >> From: >> tom <dev.tom.men...@gmx.net> <dev.tom.men...@gmx.net> Reply-To: >> solr-u...@lucene.apache.org To: solr-u...@lucene.apache.org >> >> >> pocking into the code i think the FileDictionary class is the culprit: >> It takes an InputStream as a ctor argument but never releases the >> stream. what puzzles me is that the class seems to allow a one-time >> iteration and then the stream is useless, unless i'm missing smth. here. >> >> is there a good reason for this or rather a bug? >> should i move the topic to the dev list? >> >> >> On 21.06.2012 14:49, tom wrote: >> > BTW: a core unload doesnt release the lock either ;( >> > >> > >> > On 21.06.2012 14:39, tom wrote: >> >> hi, >> >> >> >> i'm using the suggester with a file like so: >> >> >> >> <searchComponent class="solr.SpellCheckComponent" name="suggest"> >> >> <lst name="spellchecker"> >> >> <str name="name">suggest</str> >> >> <str >> >> name="classname">org.apache.solr.spelling.suggest.Suggester</str> >> >> <str >> >> name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str> >> >> <!-- Alternatives to lookupImpl: >> >> org.apache.solr.spelling.suggest.fst.FSTLookup [finite state >> >> automaton] >> >> org.apache.solr.spelling.suggest.jaspell.JaspellLookup >> >> [default, jaspell-based] >> >> org.apache.solr.spelling.suggest.tst.TSTLookup [ternary trees] >> >> --> >> >> <!-- the indexed field to derive suggestions from --> >> >> <!-- TODO must change this to spell or smth alike later --> >> >> <str name="field">content</str> >> >> <float name="threshold">0.05</float> >> >> <str name="buildOnCommit">true</str> >> >> <str name="weightBuckets">100</str> >> >> <str name="sourceLocation">autocomplete.dictionary</str> >> >> </lst> >> >> </searchComponent> >> >> >> >> when trying to replicate i get the following error message on the >> >> slave side: >> >> >> >> 2012-06-21 14:34:50,781 ERROR >> >> [pool-3-thread-1 ] >> >> handler.ReplicationHandler - SnapPull failed >> >> org.apache.solr.common.SolrException: Unable to rename: <path> >> >> autocomplete.dictionary.20120620120611 >> >> at >> >> org.apache.solr.handler.SnapPuller.copyTmpConfFiles2Conf(SnapPuller.java:642) >> >> at >> >> org.apache.solr.handler.SnapPuller.downloadConfFiles(SnapPuller.java:526) >> >> at >> >> org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:299) >> >> at >> >> org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:268) >> >> at org.apache.solr.handler.SnapPuller$1.run(SnapPuller.java:159) >> >> at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) >> >> at >> >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) >> >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) >> >> at >> >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) >> >> at >> >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) >> >> at >> >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) >> >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) >> >> at java.lang.Thread.run(Thread.java:619) >> >> >> >> so i dug around it and found out that the solr's java process holds a >> >> lock on the autocomplete.dictionary file. any reason why this is so? >> >> >> >> thx, >> >> >> >> running: >> >> solr 3.5 >> >> win7 >> >> >> > >> > >> > >> >> >> >> >> >> >> >> >