Sorry but which one shoud I take?? where exactly ?
Noble Paul നോബിള് नोब्ळ् wrote: > > this fix is there in the trunk , > you may not need to apply the patch > > On Fri, Mar 27, 2009 at 6:02 AM, sunnyfr <johanna...@gmail.com> wrote: >> >> Hi, >> >> It doesn't seem to work for me, I changed as well this part below is it >> ok?? >>> - List<String> copiedfiles = new ArrayList<String>(); >>> + Set<String> filesToCopy = new HashSet<String>(); >> >> http://www.nabble.com/file/p22734005/ReplicationHandler.java >> ReplicationHandler.java >> >> Thanks a lot, >> >> >> >> >> >> Noble Paul നോബിള് नोब्ळ् wrote: >>> >>> James thanks . >>> >>> If this is true the place to fix this is in >>> ReplicationHandler#getFileList(). patch is attached. >>> >>> >>> On Wed, Dec 24, 2008 at 4:04 PM, James Grant <james.gr...@semantico.com> >>> wrote: >>>> I had the same problem. It turned out that the list of files from the >>>> master >>>> included duplicates. When the slave completes the download and tries to >>>> move >>>> the files into the index it comes across a file that does not exist >>>> because >>>> it has already been moved so it backs out the whole operation. >>>> >>>> My solution for now was to patch the copyindexFiles method of >>>> org.apache.solr.handler.SnapPuller so that it normalises the list >>>> before >>>> moving the files. This isn't the best solution since it will still >>>> download >>>> the file twice but it was the easiest and smallest change to make. The >>>> patch >>>> is below >>>> >>>> Regards >>>> >>>> James >>>> >>>> --- src/java/org/apache/solr/handler/SnapPuller.java (revision >>>> 727347) >>>> +++ src/java/org/apache/solr/handler/SnapPuller.java (working copy) >>>> @@ -470,7 +470,7 @@ >>>> */ >>>> private boolean copyIndexFiles(File snapDir, File indexDir) { >>>> String segmentsFile = null; >>>> - List<String> copiedfiles = new ArrayList<String>(); >>>> + Set<String> filesToCopy = new HashSet<String>(); >>>> for (Map<String, Object> f : filesDownloaded) { >>>> String fname = (String) f.get(NAME); >>>> // the segments file must be copied last >>>> @@ -482,6 +482,10 @@ >>>> segmentsFile = fname; >>>> continue; >>>> } >>>> + filesToCopy.add(fname); >>>> + } >>>> + List<String> copiedfiles = new ArrayList<String>(); >>>> + for (String fname: filesToCopy) { >>>> if (!copyAFile(snapDir, indexDir, fname, copiedfiles)) return >>>> false; >>>> copiedfiles.add(fname); >>>> } >>>> >>>> >>>> Jaco wrote: >>>>> >>>>> Hello, >>>>> >>>>> While testing out the new replication features, I'm running into some >>>>> strange problem. On the slave, I keep getting an error like this after >>>>> all >>>>> files have been copied from the master to the temporary >>>>> index.xxxxxxxxx >>>>> directory: >>>>> >>>>> SEVERE: Unable to move index file from: >>>>> D:\Data\solr\Slave\data\index.20081224110855\_21e.tvx to: >>>>> D:\Data\Solr\Slave\data\index\_21e.tvx >>>>> >>>>> The replication then stops, index remains in original state, so the >>>>> updates >>>>> are not available at the slave. >>>>> >>>>> This is my replication config at the master: >>>>> >>>>> <requestHandler name="/replication" class="solr.ReplicationHandler" >>>>> > >>>>> <lst name="master"> >>>>> <!--Replicate on 'optimize' it can also be 'commit' --> >>>>> <str name="replicateAfter">commit</str> >>>>> <str name="confFiles">schema.xml</str> >>>>> </lst> >>>>> </requestHandler> >>>>> >>>>> This is the replication config at the slave: >>>>> >>>>> <requestHandler name="/replication" class="solr.ReplicationHandler" >>>>> > >>>>> <lst name="slave"> >>>>> <str name="masterUrl"> >>>>> http://hostnamemaster:8080/solr/Master/replication</str> >>>>> <str name="pollInterval">00:10:00</str> >>>>> <str name="zip">true</str> >>>>> </lst> >>>>> </requestHandler> >>>>> >>>>> I'm running a Solr nightly build of 21.12.2008 in Tomcat 6 on Windows >>>>> 2003. >>>>> Initially I thought there was some problem with disk space, but this >>>>> is >>>>> not >>>>> the case. Replication did run fine for intial version of index, but >>>>> after >>>>> that at some point it didn't work anymore. Any ideas what could be >>>>> wrong >>>>> here? >>>>> >>>>> Thanks very much in advance, bye, >>>>> >>>>> Jaco. >>>>> >>>>> >>>> >>>> >>> >>> >>> >>> -- >>> --Noble Paul >>> >>> Index: src/java/org/apache/solr/handler/ReplicationHandler.java >>> =================================================================== >>> --- src/java/org/apache/solr/handler/ReplicationHandler.java (revision >>> 729282) >>> +++ src/java/org/apache/solr/handler/ReplicationHandler.java (working >>> copy) >>> @@ -268,7 +268,7 @@ >>> List<Map<String, Object>> result = new ArrayList<Map<String, >>> Object>>(); >>> try { >>> //get all the files in the commit >>> - Collection<String> files = commit.getFileNames(); >>> + Collection<String> files = new >>> HashSet<String>(commit.getFileNames()); >>> for (String fileName : files) { >>> File file = new File(core.getIndexDir(), fileName); >>> Map<String, Object> fileMeta = getFileInfo(file); >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/%22Unable-to-move-index-file%22-error-during-replication-tp21157722p22734005.html >> Sent from the Solr - User mailing list archive at Nabble.com. >> >> > > > > -- > --Noble Paul > > -- View this message in context: http://www.nabble.com/%22Unable-to-move-index-file%22-error-during-replication-tp21157722p22737672.html Sent from the Solr - User mailing list archive at Nabble.com.