Root caused the Issue to a Code Bug / Contract Violation  in SnapPuller in
solr 4.2.1 (impacts trunk as well) and Fixed by Patching the SnapPuller
locally.

fetchfilelist API expects indexversion to be specified as param.

So Call to Master should of be Form :
/solr/phcare/replication?command=filelist&gen=108213&wt=json&indexversion=1323961125908
Instead Slave Calls the Master as :
/solr/phcare/replication?command=filelist&gen=108213&wt=json

Code bug lies in SnapPuller.fetchFileList(long gen)  which gets called by
SnapPuller.fetchLatestIndex(final SolrCore core, boolean forceReplication)

The fix is pass along the version to fetchFileList and populate it.

A Patch is attached for trunk.


Thanks & Regards
Umesh Prasad
Search Engineer @ Flipkart : India's Online Megastore
-----
Empowering Consumers Find Products ..





On Tue, Apr 9, 2013 at 9:28 PM, Umesh Prasad <umesh.i...@gmail.com> wrote:

> Hi All,
>   I am migrating from Solr 3.5.0 to Solr 4.2.1. And everything is running
> fine and set to go, except the master slave replication.
>
> We use master slave replication with multi cores ( 1 master, 10 slaves and
> 20 plus cores).
>
> My Configuration is :
>
> Master :  Solr 3.5.0,  Has existing index, and delta import running using
> DIH.
> Slave : Solr 4.2.1 ,  Has no startup index
>
>
> Apr 9, 2013 9:18:40 PM org.apache.solr.core.SolrCore execute
> INFO: [phcare] webapp= path=/replication
> params={command=fetchindex&_=1365522520521&wt=json} status=0 QTime=1
> Apr 9, 2013 9:18:40 PM org.apache.solr.handler.SnapPuller fetchLatestIndex
> *INFO: Master's generation: 107876
> *Apr 9, 2013 9:18:40 PM org.apache.solr.handler.SnapPuller
> fetchLatestIndex
> *INFO: Slave's generation: 79248
> *Apr 9, 2013 9:18:40 PM org.apache.solr.handler.SnapPuller
> fetchLatestIndex
> INFO: Starting replication process
> *Apr 9, 2013 9:18:40 PM org.apache.solr.handler.SnapPuller fetchFileList
> SEVERE: No files to download for index generation: 107876
> *Apr 9, 2013 9:18:40 PM org.apache.solr.core.SolrCore execute
> INFO: [phcare] webapp= path=/replication
> params={command=details&_=1365522520556&wt=json} status=0 QTime=7
>
> In Both Master and Slave The File list for replicable version is correct.
> *on Slave *
>
> {
>
>    - masterDetails: {
>       - indexSize: "4.31 MB",
>       - indexPath:
>       "/var/lib/fk-w3-sherlock/cores/phcare/data/index.20130124235012",
>       - commits: [
>          - [
>             - "indexVersion",
>             - 1323961124638,
>             - "generation",
>             - 107856,
>             - "filelist",
>             - [
>                - "_45e1.tii",
>                - "_45e1.nrm",
>                -
>
> ......
>
>
> *ON Master
> *
> [
>
>    - "indexVersion",
>    - 1323961124638,
>    - "generation",
>    - 107856,
>    - "filelist",
>    - [
>       - "_45e1.tii",
>       - "_45e1.nrm",
>       - "_45e2_1.del",
>       - "_45e2.frq",
>       - "_45e1_3.del",
>       - "_45e1.tis",
>       - ..........
>
>
>
> Can someone help. Our whole Migration to Solr 4.2 is blocked on
> Replication issue.
>
> ---
> Thanks & Regards
> Umesh Prasad
>



-- 
---
Thanks & Regards
Umesh Prasad

Reply via email to