726 Commits

Author SHA1 Message Date
Lee Hinman
69d0952c68 [TEST] Remove @AwaitsFix from testMemoryBreaker()
Simplifies the test to make it not fail
2015-07-15 08:09:14 -06:00
Shay Banon
f8ba89d9e4 Carry over shard exception failure to master node
Don't loose the shard exception failure when sending a shard failrue to the master node
2015-07-15 14:55:04 +02:00
Simon Willnauer
cdcfcf4b00 Allow shards to be allocated if leftover shard from different index exists.
If an index name is reused but a leftover shard still exists on any node
we fail repeatedly to allocate the shard since we now check the index UUID
before reusing data. This commit allows to recover even if there is such a
leftover shard by deleting the leftover shard.

Closes #10677
2015-07-15 09:39:15 +02:00
Boaz Leskes
1e35bf3171 Discovery: wait on incoming joins before electing local node as master
During master election each node pings in order to discover other nodes and validate the liveness of existing nodes. Based on this information the node either discovers an existing master or, if enough nodes are found (based on `discovery.zen.minimum_master_nodes>>) a new master will be elected.

Currently, the node that is elected as master will currently update it the cluster state to indicate the result of the election. Other nodes will submit a join request to the newly elected master node. Instead of immediately processing the election result, the elected master
node should wait for the incoming joins from other nodes, thus validating the elections result is properly applied. As soon as enough nodes have sent their joins request (based on the `minimum_master_nodes` settings) the cluster state is modified.

Note that if `minimum_master_nodes` is not set, this change has no effect.

Closes #12161
2015-07-15 07:43:49 +02:00
Igor Motov
f2911117ef Add index name to the upgrade exception 2015-07-14 19:05:39 -04:00
Igor Motov
24a93840d5 Add url repository whitelist
Require urls for URL repository to be listed in repositories.url.allowed_urls setting. This change ensures that only authorized URLs can be accessed by elasticsearch
2015-07-14 18:38:26 -04:00
Martijn van Groningen
0af70614ac test: removed AwaitsFix annotation as the associated issue is fixed and the failures don't reproduce any more 2015-07-14 22:50:47 +02:00
Simon Willnauer
3fe48c89cf Merge pull request #12240 from s1monw/m_structured_response
Render structured exceptions in mget / mpercolate
2015-07-14 22:03:20 +02:00
Robert Muir
caab1df111 more fine-grained jython hack that also plays with java 9 2015-07-14 15:42:21 -04:00
Martijn van Groningen
f5e351aaf1 parent/child: Removed AwaitsFix annotation
Closes #9461
2015-07-14 20:05:35 +02:00
Robert Muir
01601e9a3d Add permissions to all classpath elements in BootstrapForTesting
The previous strategy (target/xxx + .m2/repository) is obviously broken for multi-module
builds.

Includes hack for crazy jython, which "finds its own jar" then looks for a Lib/ beside it
2015-07-14 12:01:03 -04:00
Simon Willnauer
def08bd594 Render structured exceptions in mget / mpercolate
Instead of rendering only the exception message this commit
adds structured exception rendering to mget and mpercolate
2015-07-14 17:52:28 +02:00
Simon Willnauer
09bd19b947 Don't allow fuzziness specified as a and require edits [0,2]
Lucene deprecated this in 4.0 and we only try best effort to support it.
Folks should only use edit distance rather than some length based
similarity. Yet the formular is simple enough such that users can
still do it in the client if they really need to.

Closes #10638
2015-07-14 17:10:29 +02:00
Simon Willnauer
738a0bc8a2 [TEST] Don't rely on iteration oder in tests
Closes #12238
2015-07-14 17:08:26 +02:00
Colin Goodheart-Smithe
bccfcfa522 Aggregation: Removed Old Script Java API from metrics aggregations
The old script syntax has been removed from the Java API but the metrics aggregations were missed. This change removes the old script API from the ValuesSourceMetricsAggregationBuilder and removes the relevant test methods for the metrics aggregations.
2015-07-14 15:41:11 +01:00
Simon Willnauer
7db293c616 Generify Index and Shard exceptions
Today we have a intermediate hierarchy for shard and index exceptions
which makes it hard to introduce generic exceptions like ResourceNotFoundException
intoduced in this commit. This commit breaks up the hierarchy by adding index and shard
as a special internal header that gets rendered for every exception that fills that header.
This commit removes dedicated exceptions like `IndexMissingException` or
`IndexShardMissingException` in favour of `ResourceNotFoundException`
2015-07-14 16:31:49 +02:00
Shay Banon
c6b110c6ef Simplify assignToNode to only do initializing
The method really only should do the move from unassigned to initializing, all the other moves have explicit methods like relocate
2015-07-14 16:05:48 +02:00
Martijn van Groningen
5cdbe60f6b percolator: Support filtering percolator queries by date using now
Closes #12185
2015-07-14 12:35:32 +02:00
Shay Banon
e598f16b58 Default delayed allocation timeout to 1m from 0
Change the default delayed allocation timeout from 0 (no delayed allocation) to 1m. The value came from a test of having a node with 50 shards being indexed into (so beefy translog requiring flush on shutdown), then shutting it down and starting it back up and waiting for it to join the cluster. This took, on a slow machine, about 30s.
The value is conservatively low and does not try to address a virtual machine / OS restart for now, in order to not have the affect of node going away and users being concerned that shards are not being allocated to the rest of the cluster as a result of that. The setting can always be changed in order to increase the delayed allocation if needed.
closes #12166
2015-07-14 11:31:16 +02:00
Martijn van Groningen
44275f3e3e Merge pull request #12214 from martijnvg/percolator/_parent_field/npe
Fix NPE when percolating a document that has a _parent field configured in its mapping
2015-07-14 10:31:10 +02:00
Martijn van Groningen
7bc26d1edd percolator: Don't throw NPE when percolating a document that has a _parent field configured in its mapping
Closes #12192
2015-07-14 10:01:16 +02:00
Robert Muir
5d48f93557 fail plugins on version mismatch 2015-07-13 21:01:39 -04:00
Boaz Leskes
d12fb5f725 Add MetaData.clusterUUID to ClusterState.toXContent
The MetaData.clusterUUID is guaranteed to be unique across clusters and is handy (which may or may not have the same human readable cluster name).

Closes #11832
2015-07-13 20:31:11 +02:00
uboness
b40186652c updated the elasticsearch versioning format
Moving to from `X.Y.Z.beta1`/`X.Y.Z.RC1` to `X.Y.Z-beta1`/`X.Y.Z-rc1`
2015-07-13 20:26:37 +02:00
Boaz Leskes
17906ca7d6 Rename MetaData.uuid -> MetaData.clusterUUID and IndexMetaData.uuid-> IndexMetaData.indexUUID
As explained in #11831, we currently have uuid fields on the cluster state, meta data and index metadata. The latter two are persistent across changes are being effectively used as a persistent uuid for this cluster and a persistent uuid for an index. The first (ClusterState.uuid) is ephemeral and changes with every change to the cluster state. This is confusing,

We settled on having the following, new names:

-> ClusterState.uuid -> stateUUID (transient)
-> MetaData.uuid -> clusterUUID (persistent)
-> IndexMetaData.uuid -> indexUUID (persistent).

Closes #11914
Closes #11831
2015-07-13 20:15:54 +02:00
Simon Willnauer
8e07b4fba4 Throw LockObtainFailedException exception when we can lock index directory
Today we throw ElasticsearchException if we can't lock the index. This can cause
problems since some places where we have logic to deal with IOException on shard
deletion won't schedule a retry if we can't lock the index dir for removal. This
is the case on shadow replicas for instance if a shared FS is used. The result
of this is that the delete of an index is never acked.
2015-07-13 17:40:35 +02:00
Alex Ksikes
64f981fc32 Fix rewrite set twice in WildcardQueryParser
Closes #12207
2015-07-13 17:35:50 +02:00
Simon Willnauer
9faa3c6756 [TEST] ensure exceptions won't cause test to hang 2015-07-13 12:29:50 +02:00
Simon Willnauer
2e2bb25205 Only clear open search ctx if the index is delete or closed via API
A change in #12116 introduces closing / cleaning of search ctx even if
the index service was closed due to a relocation of it's last shard. This
is not desired since in that case it's fine to serve the pending requests from
the relocated shard. This commit adds an extra check to ensure that the index is
either removed (delete) or closed via API.
2015-07-13 11:34:34 +02:00
Simon Willnauer
ca56d442bc remove dead code 2015-07-13 11:21:35 +02:00
Alexander Reelsen
195c8ec903 Term Query: Be more strict during parsing
The term query parser was too lenient during parsing and allowed to specify
more than one field, even though this expected to filter only for a single field.

This commit returns an exception if a query has been specified more than once.

Closes #12184
2015-07-13 09:59:30 +02:00
aleph-zero
aba3730643 jsr166e was left out of shaded jar
The classes in com.twitter.jsr166e were not getting included in the
shaded jar due to a missing configuration line.

Closes #12193
2015-07-11 15:12:23 -07:00
Jack Conradson
c1137b3b78 Add script type and script name to error messages
Modified ScriptEngineService to pass in a CompiledScript object
with newly added name and type member variables.
This can in turn be used to give better scripting error messages
with the type of script used and the name of the script.

Required slight modifications to the caching mechanism.

Note that this does not enforce good behavior in that plugins will
have to write exceptions that also output the name of the script
in order to be effective. There was no way to wrap the script
methods in a try/catch block properly further up the chain because
many have script-like objects passed back that can be run at a
later time.

closes #6653
closes #11449
2015-07-10 18:27:48 -07:00
Zachary Tong
bb9c160855 Merge pull request #11196 from polyfractal/feature/aggs_2_0_diff
Aggregations: add serial differencing pipeline aggregation
2015-07-10 18:26:19 -04:00
Zachary Tong
e3f9d561e4 Aggregations: add serial differencing pipeline aggregation 2015-07-10 18:22:01 -04:00
Jay Modi
c9042a5d2c Merge pull request #11890 from jaymode/cors
change CORS allow origin default to allow no origins
2015-07-10 14:48:26 -04:00
Martijn van Groningen
03148dc3b0 change visibility 2015-07-10 17:42:53 +02:00
Martijn van Groningen
512239041b fix npe 2015-07-10 17:12:51 +02:00
Martijn van Groningen
9eb11267f5 Merge pull request #12150 from martijnvg/aliases/remove_strict_filter_parsing
Don't require fields in alias filters to exist in the mapping
2015-07-10 16:50:51 +02:00
Martijn van Groningen
52859e3a52 Internal: refactored MetaData to split the concrete index name resolution to IndexNameExpressionResolver.
Changes in a nutshell:
* All expression logic is now encapsulated by ExpressionResolver interface.
* MetaData#convertFromWildcards() gets replaced by WildcardExpressionResolver.
* All of the indices expansion methods are being moved from MetaData class to the new IndexNameExpressionResolver class.
* All single index expansion optimisations are removed.

The logic for resolving a concrete index name from an expression has been moved from MetaData to IndexExpressionResolver. The logic has been cleaned up and simplified were was possible without breaking bwc.

Also the notion of aliasOrIndex has been changed to index expression.

The IndexNameExpressionResolver translates index name expressions into concrete indices. The list of index name expressions are first delegated to the known ExpressionResolverS. An ExpressionResolver is responsible for translating if possible an expression into another expression (possibly but not required this can be concrete indices or aliases) otherwise the expressions are left untouched. Concretely this means converting wildcard expressions into concrete indices or aliases, but in the future other implementations could convert expressions based on different rules.

To prevent many overloading of methods, DocumentRequest extends now from IndicesRequest. All implementation of DocumentRequest already did implement IndicesRequest indirectly.
2015-07-10 15:18:28 +02:00
Simon Willnauer
75a51ede24 Allow rpm to be build as part of package phase
This allows the creation of the RPM artifact as part of the
maven package phase. The result of this is that we get checksum and
name correction for-free as it's all build an installed into the m2
repository. This also publishes the RPM together with .deb to the mvn
mirror.

Note: this will only build the RPM as part of the package phase if
`-Dpackage.rpm=true` since the binaries to build the RPM are not
availabel on all platforms.
2015-07-10 14:43:47 +02:00
Simon Willnauer
164212940b Free all pending search contexts if index is closed or removed
Today we only clear search contexts for deleted indies. Yet, we should
do the same for closed indices to ensure they can be reopened quickly.

Closes #12116
2015-07-10 14:27:53 +02:00
Colin Goodheart-Smithe
fcf8d2408f Aggregations: Adds new script API to ValuesSourceMetricsAggregationBuilder
A method for the new Script API were missing in the ValuesSourceMetricsAggregationBuilder. This change adds the missing method and deprecates the old Script API methods
2015-07-10 13:09:31 +01:00
szroland
2c453820e4 Treat path object as a simple value objects instead of Iterable in XContentBuilder, using toString() to create String representation.
This addresses #11771
2015-07-10 10:55:43 +02:00
David Pilato
7c3ea748e2 [test] list of plugins should have well-defined order
We now return list of plugins sorted by name.

Closes #12174.
2015-07-10 10:25:15 +02:00
Boaz Leskes
28090b3d73 Allocation: Shard Started messages should be matched using an exact match
When a node sends a shard started message to the master, the master goes through the routing table looking for the shard to start. At the moment we validate the indexUUID, the node the shard is assigned to and the fact that the shard is initializing. This check goes wrong if a relocating replica shard finishes recovery just at the moment the source node  leaves the cluster. In this case the master will cancel the recovery and will likely assign a new initializing replica to the same target node. In this case the message from the relocation recovery can activate the new replica wrongfully.

Also, the logic for decided whether an incoming shard started message will be applied was split between ShardStateAction and the AllocationService.
This commit does the following:
1) Let ShardStateAction only filter basic stuff like index existence and indexUUID.
2) Move the trickier shard started matching logic to the AllocationService and make it stricter
3) Unify ShardStateAction filtering logic for both shard started and shard failed.
4) Add unit tests for all of the above.

For an example test failure see: http://build-us-00.elastic.co/job/es_core_16_centos/388/

Closes #11999
2015-07-10 08:49:31 +03:00
Robert Muir
5b4e86389c fix broken usage of path api 2015-07-10 01:02:13 -04:00
Simon Willnauer
0ea9adb284 [TEST] Assert against minCompatVersion instead of a static string 2015-07-09 21:47:17 +02:00
Ryan Ernst
59d6e59dec silence symlink test on windows 2015-07-09 12:41:48 -07:00
Simon Willnauer
e0708813a9 Make 2.0.0.beta1-SNAPSHOT the current version.
Today everything is tight to having the next version as the latest.
In order to work towards 2.0.0.beta1 we need to fix all the usage of
2.0.0-SNAPSHOT to reflect the version we will release soon.
Usually we do this on the release branch but to simplify things I wanna
keep this on master for now and move to 2.1.0-SNAPSHOT on master once
we created a 2.0 branch.

Closes #12148
2015-07-09 21:24:32 +02:00