You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you create a template with number_of_shards set to 0, then it accepts it and the eventual index fails. Attempted in ES 1.7.1. (If you try to do this directly with the index, then it will appropriately block the attempt.)
# Create the templatePUT /_template/test_shards
{
"template": "test_shards*",
"settings": {
"number_of_shards" : 0
}
}
# Create the indexPUT /test_shards
Once created, the cluster is in a red state because no primaries are allocated, which is kind of odd on its own because no primaries are missing.
DELETE /test_shards
When trying to delete the index, an exception is logged:
[2015-08-13 18:49:11,042][WARN ][cluster.action.index ] [WallE] [test_shards]failed to ack index store deleted for index
java.lang.IllegalArgumentException: settings must contain a non-null > 0 number of shards
at org.elasticsearch.env.NodeEnvironment.lockAllForIndex(NodeEnvironment.java:445)
at org.elasticsearch.indices.IndicesService.processPendingDeletes(IndicesService.java:733)
at org.elasticsearch.cluster.action.index.NodeIndexDeletedAction.lockIndexAndAck(NodeIndexDeletedAction.java:125)
at org.elasticsearch.cluster.action.index.NodeIndexDeletedAction.access$500(NodeIndexDeletedAction.java:49)
at org.elasticsearch.cluster.action.index.NodeIndexDeletedAction$1.doRun(NodeIndexDeletedAction.java:94)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:36)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
However, after an usually long delay, it eventually responds with success. Looking on disk, the index's directory still exists, but it is appropriately empty.
Workaround
You can fix the issue by updating the template to fix the issue, creating the index, and then deleting it. (You can also just specify the number_of_shards directly at index time to override them template, but fixing the template is the appropriate fix if you run into this issue!)
# Recreate the indexPUT /test_shards
{
"settings" : {
"number_of_shards" : 1
}
}
# Clean it upDELETE /test_shards
This will appropriately cleanup the directory.
The text was updated successfully, but these errors were encountered:
If you create a template with
number_of_shards
set to 0, then it accepts it and the eventual index fails. Attempted in ES 1.7.1. (If you try to do this directly with the index, then it will appropriately block the attempt.)Once created, the cluster is in a red state because no primaries are allocated, which is kind of odd on its own because no primaries are missing.
When trying to delete the index, an exception is logged:
However, after an usually long delay, it eventually responds with success. Looking on disk, the index's directory still exists, but it is appropriately empty.
Workaround
You can fix the issue by updating the template to fix the issue, creating the index, and then deleting it. (You can also just specify the
number_of_shards
directly at index time to override them template, but fixing the template is the appropriate fix if you run into this issue!)This will appropriately cleanup the directory.
The text was updated successfully, but these errors were encountered: