Skip to content

Commit 4af4f89

Browse files
committed
Merge branch 'master' into compile-with-jdk-9
* master: Use Gradle wrapper when building BWC Painless: Add a simple cache for whitelist methods and fields. (elastic#28142) Fix upgrading indices which use a custom similarity plugin. (elastic#26985) Fix Licenses values for CDDL and Custom URL (elastic#27999) Cleanup TcpChannelFactory and remove classes (elastic#28102) Fix expected plugins test for transport-nio [Docs] Fix Date Math example descriptions (elastic#28125) Fail rollover if duplicated alias found in template (elastic#28110) Avoid concurrent snapshot finalizations when deleting an INIT snapshot (elastic#28078) Deprecate `isShardsAcked()` in favour of `isShardsAcknowledged()` (elastic#27819) [TEST] Wait for replicas to be allocated before shrinking Use the underlying connection version for CCS connections (elastic#28093) test: do not use asn fields Test: Add assumeFalse for test that cannot pass on windows Clarify reproduce info on Windows Remove out-of-date projectile file
2 parents c295dfa + a85772c commit 4af4f89

File tree

46 files changed

+470
-312
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+470
-312
lines changed

.projectile

Lines changed: 0 additions & 31 deletions
This file was deleted.

buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public class DependenciesInfoTask extends DefaultTask {
8888
* <u>
8989
* <li><em>UNKNOWN</em> if LICENSE file is not present for this dependency.</li>
9090
* <li><em>one SPDX identifier</em> if the LICENSE content matches with an SPDX license.</li>
91-
* <li><em>Custom:URL</em> if it's not an SPDX license,
91+
* <li><em>Custom;URL</em> if it's not an SPDX license,
9292
* URL is the Github URL to the LICENSE file in elasticsearch repository.</li>
9393
* </ul>
9494
*
@@ -116,7 +116,7 @@ public class DependenciesInfoTask extends DefaultTask {
116116
// As we have the license file, we create a Custom entry with the URL to this license file.
117117
final gitBranch = System.getProperty('build.branch', 'master')
118118
final String githubBaseURL = "https://raw.githubusercontent.com/elastic/elasticsearch/${gitBranch}/"
119-
return "Custom:${license.getCanonicalPath().replaceFirst('.*/elasticsearch/', githubBaseURL)}"
119+
return "Custom;${license.getCanonicalPath().replaceFirst('.*/elasticsearch/', githubBaseURL)}"
120120
}
121121
return spdx
122122
} else {
@@ -156,10 +156,10 @@ public class DependenciesInfoTask extends DefaultTask {
156156
spdx = 'LGPL-3.0'
157157
break
158158
case ~/.*${CDDL_1_0}.*/:
159-
spdx = 'CDDL_1_0'
159+
spdx = 'CDDL-1.0'
160160
break
161161
case ~/.*${CDDL_1_1}.*/:
162-
spdx = 'CDDL_1_1'
162+
spdx = 'CDDL-1.1'
163163
break
164164
case ~/.*${ICU}.*/:
165165
spdx = 'ICU'

buildSrc/src/main/groovy/org/elasticsearch/gradle/vagrant/VagrantTestPlugin.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.elasticsearch.gradle.vagrant
22

33
import com.carrotsearch.gradle.junit4.RandomizedTestingPlugin
4+
import org.apache.tools.ant.taskdefs.condition.Os
45
import org.elasticsearch.gradle.FileContentsTask
56
import org.gradle.api.*
67
import org.gradle.api.artifacts.dsl.RepositoryHandler
@@ -343,8 +344,9 @@ class VagrantTestPlugin implements Plugin<Project> {
343344
TaskExecutionAdapter packagingReproListener = new TaskExecutionAdapter() {
344345
@Override
345346
void afterExecute(Task task, TaskState state) {
347+
final String gradlew = Os.isFamily(Os.FAMILY_WINDOWS) ? "gradlew" : "./gradlew"
346348
if (state.failure != null) {
347-
println "REPRODUCE WITH: ./gradlew ${packaging.path} " +
349+
println "REPRODUCE WITH: ${gradlew} ${packaging.path} " +
348350
"-Dtests.seed=${project.testSeed} "
349351
}
350352
}

client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,10 @@ public void testCreateIndex() throws IOException {
190190

191191
// tag::create-index-response
192192
boolean acknowledged = createIndexResponse.isAcknowledged(); // <1>
193-
boolean shardsAcked = createIndexResponse.isShardsAcked(); // <2>
193+
boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged(); // <2>
194194
// end::create-index-response
195195
assertTrue(acknowledged);
196-
assertTrue(shardsAcked);
196+
assertTrue(shardsAcknowledged);
197197
}
198198
}
199199

@@ -202,7 +202,6 @@ public void testCreateIndexAsync() throws Exception {
202202

203203
{
204204
CreateIndexRequest request = new CreateIndexRequest("twitter");
205-
206205
// tag::create-index-execute-async
207206
client.indices().createIndexAsync(request, new ActionListener<CreateIndexResponse>() {
208207
@Override

core/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ public ActiveShardCount waitForActiveShards() {
453453
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
454454
* to wait for the desired amount of shard copies to become active before returning.
455455
* Index creation will only wait up until the timeout value for the number of shard copies
456-
* to be active before returning. Check {@link CreateIndexResponse#isShardsAcked()} to
456+
* to be active before returning. Check {@link CreateIndexResponse#isShardsAcknowledged()} to
457457
* determine if the requisite shard copies were all started before returning or timing out.
458458
*
459459
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequestBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public CreateIndexRequestBuilder setUpdateAllTypes(boolean updateAllTypes) {
254254
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
255255
* to wait for the desired amount of shard copies to become active before returning.
256256
* Index creation will only wait up until the timeout value for the number of shard copies
257-
* to be active before returning. Check {@link CreateIndexResponse#isShardsAcked()} to
257+
* to be active before returning. Check {@link CreateIndexResponse#isShardsAcknowledged()} to
258258
* determine if the requisite shard copies were all started before returning or timing out.
259259
*
260260
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexResponse.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,24 @@ public class CreateIndexResponse extends AcknowledgedResponse implements ToXCont
5252
PARSER.declareField(constructorArg(), (parser, context) -> parser.text(), INDEX, ObjectParser.ValueType.STRING);
5353
}
5454

55-
private boolean shardsAcked;
55+
private boolean shardsAcknowledged;
5656
private String index;
5757

5858
protected CreateIndexResponse() {
5959
}
6060

61-
protected CreateIndexResponse(boolean acknowledged, boolean shardsAcked, String index) {
61+
protected CreateIndexResponse(boolean acknowledged, boolean shardsAcknowledged, String index) {
6262
super(acknowledged);
63-
assert acknowledged || shardsAcked == false; // if its not acknowledged, then shards acked should be false too
64-
this.shardsAcked = shardsAcked;
63+
assert acknowledged || shardsAcknowledged == false; // if its not acknowledged, then shardsAcknowledged should be false too
64+
this.shardsAcknowledged = shardsAcknowledged;
6565
this.index = index;
6666
}
6767

6868
@Override
6969
public void readFrom(StreamInput in) throws IOException {
7070
super.readFrom(in);
7171
readAcknowledged(in);
72-
shardsAcked = in.readBoolean();
72+
shardsAcknowledged = in.readBoolean();
7373
if (in.getVersion().onOrAfter(Version.V_5_6_0)) {
7474
index = in.readString();
7575
}
@@ -79,27 +79,39 @@ public void readFrom(StreamInput in) throws IOException {
7979
public void writeTo(StreamOutput out) throws IOException {
8080
super.writeTo(out);
8181
writeAcknowledged(out);
82-
out.writeBoolean(shardsAcked);
82+
out.writeBoolean(shardsAcknowledged);
8383
if (out.getVersion().onOrAfter(Version.V_5_6_0)) {
8484
out.writeString(index);
8585
}
8686
}
8787

8888
/**
8989
* Returns true if the requisite number of shards were started before
90-
* returning from the index creation operation. If {@link #isAcknowledged()}
90+
* returning from the index creation operation. If {@link #isAcknowledged()}
9191
* is false, then this also returns false.
92+
*
93+
* @deprecated use {@link #isShardsAcknowledged()}
9294
*/
95+
@Deprecated
9396
public boolean isShardsAcked() {
94-
return shardsAcked;
97+
return shardsAcknowledged;
98+
}
99+
100+
/**
101+
* Returns true if the requisite number of shards were started before
102+
* returning from the index creation operation. If {@link #isAcknowledged()}
103+
* is false, then this also returns false.
104+
*/
105+
public boolean isShardsAcknowledged() {
106+
return shardsAcknowledged;
95107
}
96108

97109
public String index() {
98110
return index;
99111
}
100112

101113
public void addCustomFields(XContentBuilder builder) throws IOException {
102-
builder.field(SHARDS_ACKNOWLEDGED.getPreferredName(), isShardsAcked());
114+
builder.field(SHARDS_ACKNOWLEDGED.getPreferredName(), isShardsAcknowledged());
103115
builder.field(INDEX.getPreferredName(), index());
104116
}
105117

core/src/main/java/org/elasticsearch/action/admin/indices/create/TransportCreateIndexAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ protected void masterOperation(final CreateIndexRequest request, final ClusterSt
7979
.waitForActiveShards(request.waitForActiveShards());
8080

8181
createIndexService.createIndex(updateRequest, ActionListener.wrap(response ->
82-
listener.onResponse(new CreateIndexResponse(response.isAcknowledged(), response.isShardsAcked(), indexName)),
82+
listener.onResponse(new CreateIndexResponse(response.isAcknowledged(), response.isShardsAcknowledged(), indexName)),
8383
listener::onFailure));
8484
}
8585

core/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ CreateIndexRequest getCreateIndexRequest() {
202202
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
203203
* to wait for the desired amount of shard copies to become active before returning.
204204
* Index creation will only wait up until the timeout value for the number of shard copies
205-
* to be active before returning. Check {@link RolloverResponse#isShardsAcked()} to
205+
* to be active before returning. Check {@link RolloverResponse#isShardsAcknowledged()} to
206206
* determine if the requisite shard copies were all started before returning or timing out.
207207
*
208208
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequestBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public RolloverRequestBuilder mapping(String type, String source) {
8787
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
8888
* to wait for the desired amount of shard copies to become active before returning.
8989
* Index creation will only wait up until the timeout value for the number of shard copies
90-
* to be active before returning. Check {@link RolloverResponse#isShardsAcked()} to
90+
* to be active before returning. Check {@link RolloverResponse#isShardsAcknowledged()} to
9191
* determine if the requisite shard copies were all started before returning or timing out.
9292
*
9393
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverResponse.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,19 @@ public final class RolloverResponse extends ActionResponse implements ToXContent
4848
private boolean dryRun;
4949
private boolean rolledOver;
5050
private boolean acknowledged;
51-
private boolean shardsAcked;
51+
private boolean shardsAcknowledged;
5252

5353
RolloverResponse() {
5454
}
5555

5656
RolloverResponse(String oldIndex, String newIndex, Set<Condition.Result> conditionResults,
57-
boolean dryRun, boolean rolledOver, boolean acknowledged, boolean shardsAcked) {
57+
boolean dryRun, boolean rolledOver, boolean acknowledged, boolean shardsAcknowledged) {
5858
this.oldIndex = oldIndex;
5959
this.newIndex = newIndex;
6060
this.dryRun = dryRun;
6161
this.rolledOver = rolledOver;
6262
this.acknowledged = acknowledged;
63-
this.shardsAcked = shardsAcked;
63+
this.shardsAcknowledged = shardsAcknowledged;
6464
this.conditionStatus = conditionResults.stream()
6565
.map(result -> new AbstractMap.SimpleEntry<>(result.condition.toString(), result.matched))
6666
.collect(Collectors.toSet());
@@ -105,19 +105,31 @@ public boolean isRolledOver() {
105105
* Returns true if the creation of the new rollover index and switching of the
106106
* alias to the newly created index was successful, and returns false otherwise.
107107
* If {@link #isDryRun()} is true, then this will also return false. If this
108-
* returns false, then {@link #isShardsAcked()} will also return false.
108+
* returns false, then {@link #isShardsAcknowledged()} will also return false.
109109
*/
110110
public boolean isAcknowledged() {
111111
return acknowledged;
112112
}
113113

114114
/**
115115
* Returns true if the requisite number of shards were started in the newly
116-
* created rollover index before returning. If {@link #isAcknowledged()} is
116+
* created rollover index before returning. If {@link #isAcknowledged()} is
117117
* false, then this will also return false.
118+
*
119+
* @deprecated use {@link #isShardsAcknowledged()}
118120
*/
121+
@Deprecated
119122
public boolean isShardsAcked() {
120-
return shardsAcked;
123+
return shardsAcknowledged;
124+
}
125+
126+
/**
127+
* Returns true if the requisite number of shards were started in the newly
128+
* created rollover index before returning. If {@link #isAcknowledged()} is
129+
* false, then this will also return false.
130+
*/
131+
public boolean isShardsAcknowledged() {
132+
return shardsAcknowledged;
121133
}
122134

123135
@Override
@@ -136,7 +148,7 @@ public void readFrom(StreamInput in) throws IOException {
136148
dryRun = in.readBoolean();
137149
rolledOver = in.readBoolean();
138150
acknowledged = in.readBoolean();
139-
shardsAcked = in.readBoolean();
151+
shardsAcknowledged = in.readBoolean();
140152
}
141153

142154
@Override
@@ -152,7 +164,7 @@ public void writeTo(StreamOutput out) throws IOException {
152164
out.writeBoolean(dryRun);
153165
out.writeBoolean(rolledOver);
154166
out.writeBoolean(acknowledged);
155-
out.writeBoolean(shardsAcked);
167+
out.writeBoolean(shardsAcknowledged);
156168
}
157169

158170
@Override
@@ -163,7 +175,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
163175
builder.field(ROLLED_OVER, rolledOver);
164176
builder.field(DRY_RUN, dryRun);
165177
builder.field(ACKNOWLEDGED, acknowledged);
166-
builder.field(SHARDS_ACKED, shardsAcked);
178+
builder.field(SHARDS_ACKED, shardsAcknowledged);
167179
builder.startObject(CONDITIONS);
168180
for (Map.Entry<String, Boolean> entry : conditionStatus) {
169181
builder.field(entry.getKey(), entry.getValue());

core/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@
3737
import org.elasticsearch.cluster.metadata.AliasOrIndex;
3838
import org.elasticsearch.cluster.metadata.IndexMetaData;
3939
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
40+
import org.elasticsearch.cluster.metadata.IndexTemplateMetaData;
4041
import org.elasticsearch.cluster.metadata.MetaData;
4142
import org.elasticsearch.cluster.metadata.MetaDataCreateIndexService;
4243
import org.elasticsearch.cluster.metadata.MetaDataIndexAliasesService;
44+
import org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService;
4345
import org.elasticsearch.cluster.service.ClusterService;
4446
import org.elasticsearch.common.inject.Inject;
4547
import org.elasticsearch.common.settings.Settings;
@@ -115,6 +117,7 @@ protected void masterOperation(final RolloverRequest rolloverRequest, final Clus
115117
: generateRolloverIndexName(sourceProvidedName, indexNameExpressionResolver);
116118
final String rolloverIndexName = indexNameExpressionResolver.resolveDateMathExpression(unresolvedName);
117119
MetaDataCreateIndexService.validateIndexName(rolloverIndexName, state); // will fail if the index already exists
120+
checkNoDuplicatedAliasInIndexTemplate(metaData, rolloverIndexName, rolloverRequest.getAlias());
118121
client.admin().indices().prepareStats(sourceIndexName).clear().setDocs(true).execute(
119122
new ActionListener<IndicesStatsResponse>() {
120123
@Override
@@ -140,8 +143,9 @@ public void onResponse(IndicesStatsResponse statsResponse) {
140143
activeShardsObserver.waitForActiveShards(new String[]{rolloverIndexName},
141144
rolloverRequest.getCreateIndexRequest().waitForActiveShards(),
142145
rolloverRequest.masterNodeTimeout(),
143-
isShardsAcked -> listener.onResponse(new RolloverResponse(sourceIndexName, rolloverIndexName,
144-
conditionResults, false, true, true, isShardsAcked)),
146+
isShardsAcknowledged -> listener.onResponse(new RolloverResponse(
147+
sourceIndexName, rolloverIndexName, conditionResults, false, true, true,
148+
isShardsAcknowledged)),
145149
listener::onFailure);
146150
} else {
147151
listener.onResponse(new RolloverResponse(sourceIndexName, rolloverIndexName, conditionResults,
@@ -237,4 +241,19 @@ static CreateIndexClusterStateUpdateRequest prepareCreateIndexRequest(final Stri
237241
.mappings(createIndexRequest.mappings());
238242
}
239243

244+
/**
245+
* If the newly created index matches with an index template whose aliases contains the rollover alias,
246+
* the rollover alias will point to multiple indices. This causes indexing requests to be rejected.
247+
* To avoid this, we make sure that there is no duplicated alias in index templates before creating a new index.
248+
*/
249+
static void checkNoDuplicatedAliasInIndexTemplate(MetaData metaData, String rolloverIndexName, String rolloverRequestAlias) {
250+
final List<IndexTemplateMetaData> matchedTemplates = MetaDataIndexTemplateService.findTemplates(metaData, rolloverIndexName);
251+
for (IndexTemplateMetaData template : matchedTemplates) {
252+
if (template.aliases().containsKey(rolloverRequestAlias)) {
253+
throw new IllegalArgumentException(String.format(Locale.ROOT,
254+
"Rollover alias [%s] can point to multiple indices, found duplicated alias [%s] in index template [%s]",
255+
rolloverRequestAlias, template.aliases().keys(), template.name()));
256+
}
257+
}
258+
}
240259
}

core/src/main/java/org/elasticsearch/action/admin/indices/shrink/ResizeRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public String getSourceIndex() {
142142
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
143143
* to wait for the desired amount of shard copies to become active before returning.
144144
* Index creation will only wait up until the timeout value for the number of shard copies
145-
* to be active before returning. Check {@link ResizeResponse#isShardsAcked()} to
145+
* to be active before returning. Check {@link ResizeResponse#isShardsAcknowledged()} to
146146
* determine if the requisite shard copies were all started before returning or timing out.
147147
*
148148
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/shrink/ResizeRequestBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public ResizeRequestBuilder setSettings(Settings settings) {
5656
* non-negative integer, up to the number of copies per shard (number of replicas + 1),
5757
* to wait for the desired amount of shard copies to become active before returning.
5858
* Index creation will only wait up until the timeout value for the number of shard copies
59-
* to be active before returning. Check {@link ResizeResponse#isShardsAcked()} to
59+
* to be active before returning. Check {@link ResizeResponse#isShardsAcknowledged()} to
6060
* determine if the requisite shard copies were all started before returning or timing out.
6161
*
6262
* @param waitForActiveShards number of active shard copies to wait on

core/src/main/java/org/elasticsearch/action/admin/indices/shrink/ResizeResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public final class ResizeResponse extends CreateIndexResponse {
2525
ResizeResponse() {
2626
}
2727

28-
ResizeResponse(boolean acknowledged, boolean shardsAcked, String index) {
29-
super(acknowledged, shardsAcked, index);
28+
ResizeResponse(boolean acknowledged, boolean shardsAcknowledged, String index) {
29+
super(acknowledged, shardsAcknowledged, index);
3030
}
3131
}

0 commit comments

Comments
 (0)