[ https://issues.apache.org/jira/browse/SOLR-1383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748964#action_12748964 ]
Lance Norskog commented on SOLR-1383: ------------------------------------- The old files did go away after an optimize. Thank you. Restarting did not remove them. I suggest that old index files should be removed after all runtime requirements for them disappear. They should definitely be removed by restarting. Restarting Solr should cure all runtime problems; this includes extra files. There are a lot of Solr sites that want continuous propagation from data source to indexing to query. If they use Java replication to poll continuously for updates, it will leave vast amounts of junk files behind. The current functionality is fine for a Solr 1.4 release, but this issue should be fixed after that. Please reopen it and mark it for 1.5. Thanks. > Replication causes master to fail to delete old index files > ----------------------------------------------------------- > > Key: SOLR-1383 > URL: https://issues.apache.org/jira/browse/SOLR-1383 > Project: Solr > Issue Type: Bug > Components: replication (java) > Environment: Linux CentOS - latest Solr 1.4 trunk - Java 1.6 > Reporter: Lance Norskog > Fix For: 1.4 > > > I have developed a way to make replication leave old index files in the > master's data/index directory. It is timing-dependent. A sequence of commands > runs correctly or fails, depending on the timing between the commands. > Here is the test scenario: > Start a master and slave version of the Solr distributed example. I used 8080 > for the slave. (See example/etc/jetty.xml) > Be sure to start with empty solr/data/index files on both master and slave. > Open the replication administration jsp on the slave ( > http://localhost:8080/solr/admin/replication/index.jsp ) > Disable polling. > In a text window, go to the example/exampledocs directory and run this script > {code} > for x in *.xml > do > echo $x > sh post.sh $x > sleep 15 > curl "http://localhost:8080/solr/replication?command=fetchindex" > done > {code} > This prints each example file, indexes it, and does a replication command. At > the end of this exercise, the master and slave solr/data/index files will be > identical. > Now, kill master & slave, remove the solr/index/data directories, and start > over. This time, remove the sleep command from the script. In my > environment, old Lucene index files were left in the master's data/index. > Here is what is left in the master data/index. > The segments_? files are random across runs, but the index files left over > are consistent. > Note (courtesy of the Linux 'ls -l /proc/PID/fd' command) that the old files > are not kept open by the master solr; they are merely left behind. > In the master server: > {code} > % ls solr/data/index > _0.fdt _1.prx _2.tvx _4.nrm _5.tii _7.frq _8.tvd _a.tvx _c.nrm > _0.fdx _1.tii _3.fdt _4.prx _5.tis _7.nrm _8.tvf _b.fdt _c.prx > _0.fnm _1.tis _3.fdx _4.tii _6.fdt _7.prx _8.tvx _b.fdx _c.tii > _0.frq _2.fdt _3.fnm _4.tis _6.fdx _7.tii _a.fdt _b.fnm _c.tis > _0.nrm _2.fdx _3.frq _4.tvd _6.fnm _7.tis _a.fdx _b.frq segments.gen > _0.prx _2.fnm _3.nrm _4.tvf _6.frq _8.fdt _a.fnm _b.nrm segments_8 > _0.tii _2.frq _3.prx _4.tvx _6.nrm _8.fdx _a.frq _b.prx segments_9 > _0.tis _2.nrm _3.tii _5.fdt _6.prx _8.fnm _a.nrm _b.tii segments_a > _1.fdt _2.prx _3.tis _5.fdx _6.tii _8.frq _a.prx _b.tis segments_b > _1.fdx _2.tii _4.fdt _5.fnm _6.tis _8.nrm _a.tii _c.fdt segments_c > _1.fnm _2.tis _4.fdx _5.frq _7.fdt _8.prx _a.tis _c.fdx segments_d > _1.frq _2.tvd _4.fnm _5.nrm _7.fdx _8.tii _a.tvd _c.fnm > _1.nrm _2.tvf _4.frq _5.prx _7.fnm _8.tis _a.tvf _c.frq > {code} > {code} > % ls -l /proc/PID/fd > lr-x------ 1 root root 64 Aug 25 22:52 137 -> > /index/master/solr/data/index/_a.tis > lr-x------ 1 root root 64 Aug 25 22:52 138 -> > /index/master/solr/data/index/_a.frq > lr-x------ 1 root root 64 Aug 25 22:52 139 -> > /index/master/solr/data/index/_a.prx > lr-x------ 1 root root 64 Aug 25 22:52 140 -> > /index/master/solr/data/index/_a.fdt > lr-x------ 1 root root 64 Aug 25 22:52 141 -> > /index/master/solr/data/index/_a.fdx > lr-x------ 1 root root 64 Aug 25 22:52 142 -> > /index/master/solr/data/index/_a.tvx > lr-x------ 1 root root 64 Aug 25 22:52 143 -> > /index/master/solr/data/index/_a.tvd > lr-x------ 1 root root 64 Aug 25 22:52 144 -> > /index/master/solr/data/index/_a.tvf > lr-x------ 1 root root 64 Aug 25 22:52 145 -> > /index/master/solr/data/index/_a.nrm > lr-x------ 1 root root 64 Aug 25 22:52 72 -> > /index/master/solr/data/index/_b.tis > lr-x------ 1 root root 64 Aug 25 22:52 73 -> > /index/master/solr/data/index/_b.frq > lr-x------ 1 root root 64 Aug 25 22:52 74 -> > /index/master/solr/data/index/_b.prx > lr-x------ 1 root root 64 Aug 25 22:52 76 -> > /index/master/solr/data/index/_b.fdt > lr-x------ 1 root root 64 Aug 25 22:52 78 -> > /index/master/solr/data/index/_b.fdx > lr-x------ 1 root root 64 Aug 25 22:52 79 -> > /index/master/solr/data/index/_b.nrm > lr-x------ 1 root root 64 Aug 25 22:52 80 -> > /index/master/solr/data/index/_c.tis > lr-x------ 1 root root 64 Aug 25 22:52 81 -> > /index/master/solr/data/index/_c.frq > lr-x------ 1 root root 64 Aug 25 22:52 82 -> > /index/master/solr/data/index/_c.prx > lr-x------ 1 root root 64 Aug 25 22:52 83 -> > /index/master/solr/data/index/_c.fdt > lr-x------ 1 root root 64 Aug 25 22:52 84 -> > /index/master/solr/data/index/_c.fdx > lr-x------ 1 root root 64 Aug 25 22:52 85 -> > /index/master/solr/data/index/_c.nrm > {code} > In the slave server: > {code} > % ls solr/data/index > _a.fdt _a.tvd _b.prx _c.prx > _a.fdx _a.tvf _b.tii _c.tii > _a.fnm _a.tvx _b.tis _c.tis > _a.frq _b.fdt _c.fdt lucene-d81c111653e4c4883a6fbd7e2effd596-n-write.lock > _a.nrm _b.fdx _c.fdx segments.gen > _a.prx _b.fnm _c.fnm segments_d > _a.tii _b.frq _c.frq > _a.tis _b.nrm _c.nrm > {code} > {code} > % ls -l /proc/PID/fd > lr-x------ 1 root root 64 Aug 25 22:57 139 -> > /index/slave/solr/data/index/_a.tis > lr-x------ 1 root root 64 Aug 25 22:57 140 -> > /index/slave/solr/data/index/_a.frq > lr-x------ 1 root root 64 Aug 25 22:57 141 -> > /index/slave/solr/data/index/_a.prx > lr-x------ 1 root root 64 Aug 25 22:57 142 -> > /index/slave/solr/data/index/_a.fdt > lr-x------ 1 root root 64 Aug 25 22:57 143 -> > /index/slave/solr/data/index/_a.fdx > lr-x------ 1 root root 64 Aug 25 22:57 144 -> > /index/slave/solr/data/index/_a.tvx > lr-x------ 1 root root 64 Aug 25 22:57 145 -> > /index/slave/solr/data/index/_a.tvd > lr-x------ 1 root root 64 Aug 25 22:57 146 -> > /index/slave/solr/data/index/_a.tvf > lr-x------ 1 root root 64 Aug 25 22:57 147 -> > /index/slave/solr/data/index/_a.nrm > lr-x------ 1 root root 64 Aug 25 22:57 4 -> > /index/slave/solr/data/index/_b.tis > lr-x------ 1 root root 64 Aug 25 22:57 75 -> > /index/slave/solr/data/index/_b.frq > lr-x------ 1 root root 64 Aug 25 22:57 76 -> > /index/slave/solr/data/index/_b.prx > lr-x------ 1 root root 64 Aug 25 22:57 77 -> > /index/slave/solr/data/index/_b.fdt > lr-x------ 1 root root 64 Aug 25 22:57 78 -> > /index/slave/solr/data/index/_b.fdx > lr-x------ 1 root root 64 Aug 25 22:57 79 -> > /index/slave/solr/data/index/_b.nrm > lr-x------ 1 root root 64 Aug 25 22:57 80 -> > /index/slave/solr/data/index/_c.tis > lr-x------ 1 root root 64 Aug 25 22:57 81 -> > /index/slave/solr/data/index/_c.frq > lr-x------ 1 root root 64 Aug 25 22:57 82 -> > /index/slave/solr/data/index/_c.prx > lr-x------ 1 root root 64 Aug 25 22:57 83 -> > /index/slave/solr/data/index/_c.fdt > lr-x------ 1 root root 64 Aug 25 22:57 84 -> > /index/slave/solr/data/index/_c.fdx > lr-x------ 1 root root 64 Aug 25 22:57 85 -> > /index/slave/solr/data/index/_c.nrm > lrwx------ 1 root root 64 Aug 25 22:57 86 -> > /index/slave/solr/data/index/lucene-d81c111653e4c4883a6fbd7e2effd596-n-write.lock > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.