Skip to content

Commit e454fad

Browse files
committed
Merge branch 'master' into shave_mustache
2 parents 61266de + 588203e commit e454fad

File tree

131 files changed

+21469
-1029
lines changed

Some content is hidden

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

131 files changed

+21469
-1029
lines changed

buildSrc/src/main/groovy/com/carrotsearch/gradle/junit4/TestReportLogger.groovy

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,15 @@ import org.gradle.api.logging.LogLevel
1515
import org.gradle.api.logging.Logger
1616
import org.junit.runner.Description
1717

18+
import java.util.concurrent.atomic.AtomicBoolean
1819
import java.util.concurrent.atomic.AtomicInteger
1920

21+
import javax.sound.sampled.AudioSystem;
22+
import javax.sound.sampled.Clip;
23+
import javax.sound.sampled.Line;
24+
import javax.sound.sampled.LineEvent;
25+
import javax.sound.sampled.LineListener;
26+
2027
import static com.carrotsearch.ant.tasks.junit4.FormattingUtils.*
2128
import static com.carrotsearch.gradle.junit4.TestLoggingConfiguration.OutputMode
2229

@@ -102,9 +109,36 @@ class TestReportLogger extends TestsSummaryEventListener implements AggregatedEv
102109
formatTime(e.getCurrentTime()) + ", stalled for " +
103110
formatDurationInSeconds(e.getNoEventDuration()) + " at: " +
104111
(e.getDescription() == null ? "<unknown>" : formatDescription(e.getDescription())))
112+
try {
113+
playBeat();
114+
} catch (Exception nosound) { /* handling exceptions with style */ }
105115
slowTestsFound = true
106116
}
107117

118+
void playBeat() throws Exception {
119+
Clip clip = (Clip)AudioSystem.getLine(new Line.Info(Clip.class));
120+
final AtomicBoolean stop = new AtomicBoolean();
121+
clip.addLineListener(new LineListener() {
122+
@Override
123+
public void update(LineEvent event) {
124+
if (event.getType() == LineEvent.Type.STOP) {
125+
stop.set(true);
126+
}
127+
}
128+
});
129+
InputStream stream = getClass().getResourceAsStream("/beat.wav");
130+
try {
131+
clip.open(AudioSystem.getAudioInputStream(stream));
132+
clip.start();
133+
while (!stop.get()) {
134+
Thread.sleep(20);
135+
}
136+
clip.close();
137+
} finally {
138+
stream.close();
139+
}
140+
}
141+
108142
@Subscribe
109143
void onQuit(AggregatedQuitEvent e) throws IOException {
110144
if (config.showNumFailuresAtEnd > 0 && !failedTests.isEmpty()) {

buildSrc/src/main/resources/beat.wav

153 KB
Binary file not shown.

core/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesRequest.java

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ public AliasActions(AliasAction.Type type, String[] indices, String[] aliases) {
7878
indices(indices);
7979
aliases(aliases);
8080
}
81-
81+
8282
public AliasActions(AliasAction.Type type, String index, String alias) {
8383
aliasAction = new AliasAction(type);
8484
indices(index);
8585
aliases(alias);
8686
}
87-
87+
8888
AliasActions(AliasAction.Type type, String[] index, String alias) {
8989
aliasAction = new AliasAction(type);
9090
indices(index);
9191
aliases(alias);
9292
}
93-
93+
9494
public AliasActions(AliasAction action) {
9595
this.aliasAction = action;
9696
indices(action.index());
@@ -110,7 +110,7 @@ public AliasActions filter(Map<String, Object> filter) {
110110
aliasAction.filter(filter);
111111
return this;
112112
}
113-
113+
114114
public AliasActions filter(QueryBuilder filter) {
115115
aliasAction.filter(filter);
116116
return this;
@@ -197,7 +197,7 @@ public AliasActions readFrom(StreamInput in) throws IOException {
197197
aliasAction = readAliasAction(in);
198198
return this;
199199
}
200-
200+
201201
public void writeTo(StreamOutput out) throws IOException {
202202
out.writeStringArray(indices);
203203
out.writeStringArray(aliases);
@@ -225,7 +225,7 @@ public IndicesAliasesRequest addAliasAction(AliasAction action) {
225225
addAliasAction(new AliasActions(action));
226226
return this;
227227
}
228-
228+
229229
/**
230230
* Adds an alias to the index.
231231
* @param alias The alias
@@ -247,8 +247,8 @@ public IndicesAliasesRequest addAlias(String alias, QueryBuilder filterBuilder,
247247
addAliasAction(new AliasActions(AliasAction.Type.ADD, indices, alias).filter(filterBuilder));
248248
return this;
249249
}
250-
251-
250+
251+
252252
/**
253253
* Removes an alias to the index.
254254
*
@@ -259,7 +259,7 @@ public IndicesAliasesRequest removeAlias(String[] indices, String... aliases) {
259259
addAliasAction(new AliasActions(AliasAction.Type.REMOVE, indices, aliases));
260260
return this;
261261
}
262-
262+
263263
/**
264264
* Removes an alias to the index.
265265
*
@@ -286,25 +286,14 @@ public ActionRequestValidationException validate() {
286286
return addValidationError("Must specify at least one alias action", validationException);
287287
}
288288
for (AliasActions aliasAction : allAliasActions) {
289-
if (aliasAction.actionType() == AliasAction.Type.ADD) {
290-
if (aliasAction.aliases.length != 1) {
291-
validationException = addValidationError("Alias action [" + aliasAction.actionType().name().toLowerCase(Locale.ENGLISH)
292-
+ "] requires exactly one [alias] to be set", validationException);
293-
}
294-
if (!Strings.hasText(aliasAction.aliases[0])) {
295-
validationException = addValidationError("Alias action [" + aliasAction.actionType().name().toLowerCase(Locale.ENGLISH)
296-
+ "] requires an [alias] to be set", validationException);
297-
}
298-
} else {
299-
if (aliasAction.aliases.length == 0) {
289+
if (aliasAction.aliases.length == 0) {
290+
validationException = addValidationError("Alias action [" + aliasAction.actionType().name().toLowerCase(Locale.ENGLISH)
291+
+ "]: aliases may not be empty", validationException);
292+
}
293+
for (String alias : aliasAction.aliases) {
294+
if (!Strings.hasText(alias)) {
300295
validationException = addValidationError("Alias action [" + aliasAction.actionType().name().toLowerCase(Locale.ENGLISH)
301-
+ "]: aliases may not be empty", validationException);
302-
}
303-
for (String alias : aliasAction.aliases) {
304-
if (!Strings.hasText(alias)) {
305-
validationException = addValidationError("Alias action [" + aliasAction.actionType().name().toLowerCase(Locale.ENGLISH)
306-
+ "]: [alias] may not be empty string", validationException);
307-
}
296+
+ "]: [alias] may not be empty string", validationException);
308297
}
309298
}
310299
if (CollectionUtils.isEmpty(aliasAction.indices)) {
@@ -345,7 +334,7 @@ public void writeTo(StreamOutput out) throws IOException {
345334
public IndicesOptions indicesOptions() {
346335
return INDICES_OPTIONS;
347336
}
348-
337+
349338
private static AliasActions readAliasActions(StreamInput in) throws IOException {
350339
AliasActions actions = new AliasActions();
351340
return actions.readFrom(in);

core/src/main/java/org/elasticsearch/action/admin/indices/flush/ShardFlushRequest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@
2222
import org.elasticsearch.action.support.replication.ReplicationRequest;
2323
import org.elasticsearch.common.io.stream.StreamInput;
2424
import org.elasticsearch.common.io.stream.StreamOutput;
25+
import org.elasticsearch.index.shard.ShardId;
2526

2627
import java.io.IOException;
2728

2829
public class ShardFlushRequest extends ReplicationRequest<ShardFlushRequest> {
2930

3031
private FlushRequest request = new FlushRequest();
3132

32-
public ShardFlushRequest(FlushRequest request) {
33-
super(request);
33+
public ShardFlushRequest(FlushRequest request, ShardId shardId) {
34+
super(request, shardId);
3435
this.request = request;
3536
}
3637

@@ -53,5 +54,8 @@ public void writeTo(StreamOutput out) throws IOException {
5354
request.writeTo(out);
5455
}
5556

56-
57+
@Override
58+
public String toString() {
59+
return "flush {" + super.toString() + "}";
60+
}
5761
}

core/src/main/java/org/elasticsearch/action/admin/indices/flush/TransportFlushAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected ActionWriteResponse newShardResponse() {
5353

5454
@Override
5555
protected ShardFlushRequest newShardRequest(FlushRequest request, ShardId shardId) {
56-
return new ShardFlushRequest(request).setShardId(shardId);
56+
return new ShardFlushRequest(request, shardId);
5757
}
5858

5959
@Override

core/src/main/java/org/elasticsearch/action/admin/indices/flush/TransportShardFlushAction.java

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,15 @@
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.replication.TransportReplicationAction;
2525
import org.elasticsearch.cluster.ClusterService;
26-
import org.elasticsearch.cluster.ClusterState;
2726
import org.elasticsearch.cluster.action.index.MappingUpdatedAction;
2827
import org.elasticsearch.cluster.action.shard.ShardStateAction;
29-
import org.elasticsearch.cluster.block.ClusterBlockException;
3028
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3129
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
32-
import org.elasticsearch.cluster.routing.ShardIterator;
30+
import org.elasticsearch.cluster.metadata.MetaData;
3331
import org.elasticsearch.common.collect.Tuple;
3432
import org.elasticsearch.common.inject.Inject;
3533
import org.elasticsearch.common.settings.Settings;
3634
import org.elasticsearch.index.shard.IndexShard;
37-
import org.elasticsearch.index.shard.ShardId;
3835
import org.elasticsearch.indices.IndicesService;
3936
import org.elasticsearch.threadpool.ThreadPool;
4037
import org.elasticsearch.transport.TransportService;
@@ -61,15 +58,15 @@ protected ActionWriteResponse newResponseInstance() {
6158
}
6259

6360
@Override
64-
protected Tuple<ActionWriteResponse, ShardFlushRequest> shardOperationOnPrimary(ClusterState clusterState, PrimaryOperationRequest shardRequest) throws Throwable {
65-
IndexShard indexShard = indicesService.indexServiceSafe(shardRequest.shardId.getIndex()).getShard(shardRequest.shardId.id());
66-
indexShard.flush(shardRequest.request.getRequest());
61+
protected Tuple<ActionWriteResponse, ShardFlushRequest> shardOperationOnPrimary(MetaData metaData, ShardFlushRequest shardRequest) throws Throwable {
62+
IndexShard indexShard = indicesService.indexServiceSafe(shardRequest.shardId().getIndex()).getShard(shardRequest.shardId().id());
63+
indexShard.flush(shardRequest.getRequest());
6764
logger.trace("{} flush request executed on primary", indexShard.shardId());
68-
return new Tuple<>(new ActionWriteResponse(), shardRequest.request);
65+
return new Tuple<>(new ActionWriteResponse(), shardRequest);
6966
}
7067

7168
@Override
72-
protected void shardOperationOnReplica(ShardId shardId, ShardFlushRequest request) {
69+
protected void shardOperationOnReplica(ShardFlushRequest request) {
7370
IndexShard indexShard = indicesService.indexServiceSafe(request.shardId().getIndex()).getShard(request.shardId().id());
7471
indexShard.flush(request.getRequest());
7572
logger.trace("{} flush request executed on replica", indexShard.shardId());
@@ -81,18 +78,13 @@ protected boolean checkWriteConsistency() {
8178
}
8279

8380
@Override
84-
protected ShardIterator shards(ClusterState clusterState, InternalRequest request) {
85-
return clusterState.getRoutingTable().indicesRouting().get(request.concreteIndex()).getShards().get(request.request().shardId().getId()).shardsIt();
81+
protected ClusterBlockLevel globalBlockLevel() {
82+
return ClusterBlockLevel.METADATA_WRITE;
8683
}
8784

8885
@Override
89-
protected ClusterBlockException checkGlobalBlock(ClusterState state) {
90-
return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
91-
}
92-
93-
@Override
94-
protected ClusterBlockException checkRequestBlock(ClusterState state, InternalRequest request) {
95-
return state.blocks().indicesBlockedException(ClusterBlockLevel.METADATA_WRITE, new String[]{request.concreteIndex()});
86+
protected ClusterBlockLevel indexBlockLevel() {
87+
return ClusterBlockLevel.METADATA_WRITE;
9688
}
9789

9890
@Override

core/src/main/java/org/elasticsearch/action/admin/indices/refresh/TransportRefreshAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ protected ActionWriteResponse newShardResponse() {
5454

5555
@Override
5656
protected ReplicationRequest newShardRequest(RefreshRequest request, ShardId shardId) {
57-
return new ReplicationRequest(request).setShardId(shardId);
57+
return new ReplicationRequest(request, shardId);
5858
}
5959

6060
@Override

core/src/main/java/org/elasticsearch/action/admin/indices/refresh/TransportShardRefreshAction.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@
2424
import org.elasticsearch.action.support.replication.ReplicationRequest;
2525
import org.elasticsearch.action.support.replication.TransportReplicationAction;
2626
import org.elasticsearch.cluster.ClusterService;
27-
import org.elasticsearch.cluster.ClusterState;
2827
import org.elasticsearch.cluster.action.index.MappingUpdatedAction;
2928
import org.elasticsearch.cluster.action.shard.ShardStateAction;
30-
import org.elasticsearch.cluster.block.ClusterBlockException;
3129
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3230
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
33-
import org.elasticsearch.cluster.routing.ShardIterator;
31+
import org.elasticsearch.cluster.metadata.MetaData;
3432
import org.elasticsearch.common.collect.Tuple;
3533
import org.elasticsearch.common.inject.Inject;
3634
import org.elasticsearch.common.settings.Settings;
@@ -62,15 +60,16 @@ protected ActionWriteResponse newResponseInstance() {
6260
}
6361

6462
@Override
65-
protected Tuple<ActionWriteResponse, ReplicationRequest> shardOperationOnPrimary(ClusterState clusterState, PrimaryOperationRequest shardRequest) throws Throwable {
66-
IndexShard indexShard = indicesService.indexServiceSafe(shardRequest.shardId.getIndex()).getShard(shardRequest.shardId.id());
63+
protected Tuple<ActionWriteResponse, ReplicationRequest> shardOperationOnPrimary(MetaData metaData, ReplicationRequest shardRequest) throws Throwable {
64+
IndexShard indexShard = indicesService.indexServiceSafe(shardRequest.shardId().getIndex()).getShard(shardRequest.shardId().id());
6765
indexShard.refresh("api");
6866
logger.trace("{} refresh request executed on primary", indexShard.shardId());
69-
return new Tuple<>(new ActionWriteResponse(), shardRequest.request);
67+
return new Tuple<>(new ActionWriteResponse(), shardRequest);
7068
}
7169

7270
@Override
73-
protected void shardOperationOnReplica(ShardId shardId, ReplicationRequest request) {
71+
protected void shardOperationOnReplica(ReplicationRequest request) {
72+
final ShardId shardId = request.shardId();
7473
IndexShard indexShard = indicesService.indexServiceSafe(shardId.getIndex()).getShard(shardId.id());
7574
indexShard.refresh("api");
7675
logger.trace("{} refresh request executed on replica", indexShard.shardId());
@@ -82,18 +81,13 @@ protected boolean checkWriteConsistency() {
8281
}
8382

8483
@Override
85-
protected ShardIterator shards(ClusterState clusterState, InternalRequest request) {
86-
return clusterState.getRoutingTable().indicesRouting().get(request.concreteIndex()).getShards().get(request.request().shardId().getId()).shardsIt();
84+
protected ClusterBlockLevel globalBlockLevel() {
85+
return ClusterBlockLevel.METADATA_WRITE;
8786
}
8887

8988
@Override
90-
protected ClusterBlockException checkGlobalBlock(ClusterState state) {
91-
return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
92-
}
93-
94-
@Override
95-
protected ClusterBlockException checkRequestBlock(ClusterState state, InternalRequest request) {
96-
return state.blocks().indicesBlockedException(ClusterBlockLevel.METADATA_WRITE, new String[]{request.concreteIndex()});
89+
protected ClusterBlockLevel indexBlockLevel() {
90+
return ClusterBlockLevel.METADATA_WRITE;
9791
}
9892

9993
@Override

core/src/main/java/org/elasticsearch/action/bulk/BulkShardRequest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,8 @@ public class BulkShardRequest extends ReplicationRequest<BulkShardRequest> {
4040
public BulkShardRequest() {
4141
}
4242

43-
BulkShardRequest(BulkRequest bulkRequest, String index, int shardId, boolean refresh, BulkItemRequest[] items) {
44-
super(bulkRequest);
45-
this.index = index;
46-
this.setShardId(new ShardId(index, shardId));
43+
BulkShardRequest(BulkRequest bulkRequest, ShardId shardId, boolean refresh, BulkItemRequest[] items) {
44+
super(bulkRequest, shardId);
4745
this.items = items;
4846
this.refresh = refresh;
4947
}
@@ -93,4 +91,9 @@ public void readFrom(StreamInput in) throws IOException {
9391
}
9492
refresh = in.readBoolean();
9593
}
94+
95+
@Override
96+
public String toString() {
97+
return "shard bulk {" + super.toString() + "}";
98+
}
9699
}

core/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ private void executeBulk(final BulkRequest bulkRequest, final long startTime, fi
275275
list.add(new BulkItemRequest(i, new DeleteRequest(deleteRequest)));
276276
}
277277
} else {
278-
ShardId shardId = clusterService.operationRouting().deleteShards(clusterState, concreteIndex, deleteRequest.type(), deleteRequest.id(), deleteRequest.routing()).shardId();
278+
ShardId shardId = clusterService.operationRouting().indexShards(clusterState, concreteIndex, deleteRequest.type(), deleteRequest.id(), deleteRequest.routing()).shardId();
279279
List<BulkItemRequest> list = requestsByShard.get(shardId);
280280
if (list == null) {
281281
list = new ArrayList<>();
@@ -312,7 +312,7 @@ private void executeBulk(final BulkRequest bulkRequest, final long startTime, fi
312312
for (Map.Entry<ShardId, List<BulkItemRequest>> entry : requestsByShard.entrySet()) {
313313
final ShardId shardId = entry.getKey();
314314
final List<BulkItemRequest> requests = entry.getValue();
315-
BulkShardRequest bulkShardRequest = new BulkShardRequest(bulkRequest, shardId.index().name(), shardId.id(), bulkRequest.refresh(), requests.toArray(new BulkItemRequest[requests.size()]));
315+
BulkShardRequest bulkShardRequest = new BulkShardRequest(bulkRequest, shardId, bulkRequest.refresh(), requests.toArray(new BulkItemRequest[requests.size()]));
316316
bulkShardRequest.consistencyLevel(bulkRequest.consistencyLevel());
317317
bulkShardRequest.timeout(bulkRequest.timeout());
318318
shardBulkAction.execute(bulkShardRequest, new ActionListener<BulkShardResponse>() {

0 commit comments

Comments
 (0)