449 Commits

Author SHA1 Message Date
Robert Muir
6b7561ac9a Use junit4 for running integration tests, too
failsafe uses surefire, which sucks. It also mean integ tests act alien right now.
I would rather have the consistency, e.g. things formatted the same way, running integ tests under security manager, etc.
2015-07-16 19:43:33 -04:00
Igor Motov
c315d54c2a Fix serialization of IndexFormatTooNewException and IndexFormatTooOldException
This is essentially an ugly hack to get us by until a proper solution is possible with Lucene 5.3

Closes #12277
2015-07-16 12:41:25 -04:00
Alex Ksikes
165ee4ac7f PrefixQueryParser takes a String as value like its Builder
Relates #12032
Closes #12204
2015-07-16 18:25:21 +02:00
Zachary Tong
7367af57cf String.join() is not available pre-Java8 2015-07-16 12:24:36 -04:00
Michael McCandless
42291e3cfd QueryString ignores maxDeterminizedStates when creating a WildcardQuery
This patch backports https://issues.apache.org/jira/browse/LUCENE-6677

Merges 3ede4c469922308d43fba9ebc63e397ffd6997fe from 1.x
2015-07-16 12:21:39 -04:00
Alex Ksikes
d0256dac69 RegexpQueryParser takes a String as value like its Builder
Relates #11896
Closes #12200
2015-07-16 17:59:08 +02:00
Zachary Tong
380648ab86 Merge pull request #12280 from polyfractal/bugfix/movavg_validation
Aggregations: Add better validation of moving_avg model settings
2015-07-16 11:44:32 -04:00
Zachary Tong
702f884ba0 Aggregations: Add better validation of moving_avg model settings 2015-07-16 11:41:30 -04:00
Lee Hinman
a8391fcae9 Add _replica and _replica_first as search preference.
Just like specifying `?preference=_primary`, this adds the ability to
specify `?preference=_replica` or `?preference=_replica_first` on
requests that support it.

Resolves #12222
2015-07-16 09:25:23 -06:00
Boaz Leskes
439c67ab15 Transport: Tracer should exclude "cluster:monitor/nodes/liveness" by default
This action is a liveness test added in #8763 . It should be excluded, just like the fault detection logic or things become overly chatty.

Closes #12291
2015-07-16 17:23:27 +02:00
Martijn van Groningen
211b4d9083 Merge pull request #12288 from martijnvg/upgrade_groovy
upgrade groovy from 2.4.0 to 2.4.4
2015-07-16 14:40:06 +02:00
Martijn van Groningen
9687670e8d upgraded groovy from 2.4.0 to 2.4.4 2015-07-16 13:56:32 +02:00
Adrien Grand
e86ff6785a Do not assert that all shards were successful in tests.
Most of our tests call assertSearchResponse which checks whether all shards
were successful. However this is usually not necessary given that all shards
that received documents should be available given the way our indexing works.
The only shards that might not be available are those that did not index
any documents. So removing this assertion would allow us to remove most
ensureGreen/ensureYellow calls while still being able to assert on the content
of the search response since all data have been taken into account.

For now I only removed the ensureYellow/Green calls from SearchQueryTests in
order to not de-stabilize the build, but eventually we should remove most of
them.
2015-07-16 11:18:55 +02:00
Boaz Leskes
f9a7e7cd84 add awaitFix the entire MinimumMasterNodesTests class. multiple tests are failing... 2015-07-16 10:47:18 +02:00
Igor Motov
bfbee383bd Add checksum to snapshot metadata files
This commit adds checksum to snapshot files that store global and index based metadata as well as shard information.

Closes #11589
2015-07-15 18:52:56 -04:00
Jay Modi
5091a10f3a Merge pull request #12271 from jaymode/test_zen_port_range
restrict the test unicast zen discovery to the port range of the JVM
2015-07-15 12:38:25 -04:00
Jason Tedor
0820cb66c3 Fix issues due to missing refresh after indexing test documents in SearchStatsTests.testOpenContexts 2015-07-15 11:27:48 -05:00
Simon Willnauer
901421bc14 Merge pull request #12270 from s1monw/publish_s3
Deploy artifacts to S3 as well as sonatype when running a release
2015-07-15 18:11:38 +02:00
jaymode
883d33be95 restrict the test unicast zen discovery to the port range of the JVM
Today, the unicast zen test configuration will try to find a open port starting at the internal test cluster's
base port and continuing for 1000 ports. The internal test cluster class assigns a port range of 100 ports
to each JVM. This means that the unicast zen test configuration will try ports in the range for another JVM
and can lead to port conflicts. This change uses the same value for both so that the unicast configuration
does not go into another JVM's port range.
2015-07-15 11:42:41 -04:00
Simon Willnauer
6faa19c3de Deploy artifacts to S3 as well as sonatype when running a release
This change allows when running a release build with:

```
 mvn -Prelease deploy
```

To deploy all artifacts to S3 as well as to sonatype at the same time.
Both sources will be consistent in terms of content and no further action
is required to publish our artifacts including .rpm, .deb, .zip, .tar.gz, .jar
etc. on to out S3 download service. Albeit this changes the structure of our
downloads to pretty much matching the maven repository layout, this makes
releaseing core as well as the plugins extremely simple. This will allow to
remove most of our python script used for release and it will automatically
allow to release and integrate new modules without further interaction.

This also allows us to bascially streamline our release process on CI such that
CI builds can simply run maven deploy which is all we do during a release.

With this commit only the git related modifications like tagging, version bumping
on our pom files and publishing RPM and .deb in their dedicated repository is left
for the python script.

With this change our artifact are available as follows:

```
http://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/elasticsearch/2.0.0-beta1/elasticsearch-2.0.0-beta1.deb
http://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/elasticsearch/2.0.0-beta1/elasticsearch-2.0.0-beta1.zip
http://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/elasticsearch/2.0.0-beta1/elasticsearch-2.0.0-beta1.rpm
```

Plugins are deployed to URLs like this:

```
http://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/plugin/elasticsearch-analysis-icu/2.0.0-beta1/elasticsearch-analysis-icu-2.0.0-beta1.zip
```

All artifacts like .jar as well as their checksums and gpg signatures are also available next to it.
2015-07-15 17:14:34 +02:00
Shay Banon
f78db1f1d3 Unique allocation id
Add a unique allocation id for a shard, helping to uniquely identify a specific allocation taking place to a node.
A special case is relocation, where a transient relocationId is kept around to make sure the target initializing shard (when using RoutingNodes) is using it for its id, and when relocation is done, the transient relocationId becomes the actual id of it.
closes #12242
2015-07-15 17:08:25 +02:00
Lee Hinman
eec3095bf6 [TEST] Remove @AwaitsFix from testRamAccountingTermsEnum()
This test has stabilized with recent ES changes.
2015-07-15 08:57:53 -06:00
Boaz Leskes
ea3135f580 add await fix to multipleNodesShutdownNonMasterNodes 2015-07-15 16:25:22 +02:00
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