[ 
https://issues.apache.org/jira/browse/SOLR-9859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15750853#comment-15750853
 ] 

Cao Manh Dat commented on SOLR-9859:
------------------------------------

Just by looking at the code at {{IndexFetcher#logReplicationTimeAndConfFiles}}, 
I think we have a problem here :
- We open old {{replication.properties}} at 
{{ReplicationHandler#loadReplicationProperties()}}
- We update the props in memory
- We create a new file {{replication.properties}} and write down newest 
replication props to that file.

So we always encounter this error if {{replication.properties}} exist, plus we 
can't update {{replication.properties}} so 
{{ReplicationHandler#getStatistics()}} always return the replication props of 
first run.

The error happen in master-slave mode as well ( {{TestReplicationHandler}} )

Solution: I think we can simply delete the exist {{replication.properties}} 
before write a new one.

> replication.properties does not get updated the second time around if index 
> recovers via replication
> ----------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-9859
>                 URL: https://issues.apache.org/jira/browse/SOLR-9859
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 5.5.3, 6.3
>            Reporter: Pushkar Raste
>            Assignee: Mark Miller
>            Priority: Minor
>
> If a shard recovers via replication (vs PeerSync) a file named 
> {{replication.properties}} gets created. If the same shard recovers once more 
> via replication, IndexFetcher fails to write latest replication information 
> as it tries to create {{replication.properties}} but as file already exists. 
> Here is the stack trace I saw 
> {code}
> java.nio.file.FileAlreadyExistsException: 
> <solr_home>\shard-3-001\cores\collection1\data\replication.properties
>       at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
>       at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
>       at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
>       at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
>       at java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source)
>       at java.nio.file.Files.newOutputStream(Unknown Source)
>       at 
> org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:413)
>       at 
> org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:409)
>       at 
> org.apache.lucene.store.FSDirectory.createOutput(FSDirectory.java:253)
>       at 
> org.apache.solr.handler.IndexFetcher.logReplicationTimeAndConfFiles(IndexFetcher.java:689)
>       at 
> org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:501)
>       at 
> org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:265)
>       at 
> org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:397)
>       at 
> org.apache.solr.cloud.RecoveryStrategy.replicate(RecoveryStrategy.java:157)
>       at 
> org.apache.solr.cloud.RecoveryStrategy.doRecovery(RecoveryStrategy.java:409)
>       at org.apache.solr.cloud.RecoveryStrategy.run(RecoveryStrategy.java:222)
>       at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>       at java.util.concurrent.FutureTask.run(Unknown Source)
>       at 
> org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$0(ExecutorUtil.java:229)
>       at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>       at java.lang.Thread.run(Unknown Source)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to