Description
baseline:
/somewhere/instanceA/collection1_shard1/core.properties /somewhere/instanceA/collection1_shard1/data /somewhere/instanceA/collection1_shard2/core.properties /somewhere/instanceA/collection1_shard2/data /somewhere/instanceB
actions:
curl "http://host:port/solr/admin/cores?action=UNLOAD&core=collection1_shard2"
# since UNLOAD completed we should now be free to move the unloaded core's files as we wish
mv /somewhere/instanceA/collection1_shard2 /somewhere/instanceB/collection1_shard2
expected result:
/somewhere/instanceA/collection1_shard1/core.properties /somewhere/instanceA/collection1_shard1/data # collection1_shard2 files have been fully relocated /somewhere/instanceB/collection1_shard2/core.properties.unloaded /somewhere/instanceB/collection1_shard2/data
actual result:
/somewhere/instanceA/collection1_shard1/core.properties /somewhere/instanceA/collection1_shard1/data /somewhere/instanceA/collection1_shard2/data # collection1_shard2 files have not been fully relocated and/or some files were left behind in instanceA because the UNLOAD action had returned prior to the core being closed /somewhere/instanceB/collection1_shard2/core.properties.unloaded /somewhere/instanceB/collection1_shard2/data
proposed fix: Changing CoreContainer.unload to wait for core to close before unregistering it from ZK. Adding testMidUseUnload method to TestLazyCores.