the latest nightly should do fine

On Fri, Mar 27, 2009 at 1:59 PM, sunnyfr <johanna...@gmail.com> wrote:
>
> 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.
>
>



-- 
--Noble Paul

Reply via email to