Commit Graph

5264 Commits

Author SHA1 Message Date
Boaz Leskes f885abbedb testDanglingIndicesConflictWithAlias - wait for node left to be processed
O.w. delete index command may time out waiting for the node that left to confirm deletion
2014-10-15 18:08:15 +02:00
Ryan Ernst c9d66bf486 Tweaking upgrade test to improve reliability. 2014-10-15 09:03:39 -07:00
Chris Earle 2d8a140ed8 Add file descriptor details to cat/nodes
cat/nodes currently does not report any details related to file descriptors. This adds the current number in use, the maximum number available as well as their ratio (percentage) to cat/nodes as hidden-by-default metrics. In addition, this also adds current heap usage (as a non-percentage of ts max) and ram usage (as a non-percerntage of its max) to allow tools to provide more granularity.

Closes #7652
2014-10-15 10:18:41 -05:00
Chris Earle e88d42db2b Adding ScoreTypesTest missing license header 2014-10-15 09:54:00 -05:00
Chris Earle 9b84ad3c7b Adding "min" score mode to parent-child queries
Support for "max", "sum", and "avg" already existed.
2014-10-15 09:23:36 -05:00
Boaz Leskes dabbefd311 Internal: dangling indices import ignores aliases
Dangling indices are indexes found on disk which are not part of the cluster state. By default, we don't delete them but rather import them into the cluster state in order to not accidentally delete data and also allow for the ease of copying index data folders from one cluster to another. Currently, the import logic doesn't check for existing aliases of the same name as the imported dangling index, causing both an index and an alias with the same name.

 This commit add a protection against this. Note that the index is still kept as dangling and is only deleted from disk after `gateway.local.dangling_timeout` has passed (2 hours).

 We also change the log message indicating deletion of dangling indices to a `WARN` level.

 Closes #8059
2014-10-15 13:47:56 +02:00
Lee Hinman 9e7fba9a7b Log exception thrown in ScriptEngineService.scriptRemoved
Guava would swallow the exception and log it itself if we bubbled it up,
so we catch and log it ourselves to use our logging infrastructure.
2014-10-15 11:38:37 +02:00
Simon Willnauer 8dddac3195 [CORE] Add cluster and index state checksums
This commit adds checksumming for cluster and index states. It moves
from a plain XContent based on-disk format to a more structured binary
format including a header and footer as well as a CRC32 checksum for
each of these files. Since previous versions didn't write any format
identifier etc. this commit adds a file extension `.st` for states
that have header/footer and checksum.
This commit also moves over to write temporary files and moves them into
place with an atomic move operation. This commit also serializes and
deserializes the states without materilazing them into opaque memory.

Closes #7586
2014-10-15 11:28:50 +02:00
David Pilato 6ef6109ce9 Tests: check maven central download service is up before running plugin manager test
Though we check that internet connection is fine and that the service is available, it could happen that some services are not available.

```java
assumeTrue(isDownloadServiceWorking("search.maven.org", 80, "/"));
singlePluginInstallAndRemove("org.elasticsearch/elasticsearch-transport-thrift/2.4.0", null);
```

In that case, the first check was successful but downloading thrift plugin from maven central download services was not successful.

This is not an issue with the plugin manager itself but sometimes the test could fail.

Adding a check that actual download service in Maven central works:

```java
assumeTrue(isDownloadServiceWorking("repo1.maven.org", 443, "/maven2/org/elasticsearch/elasticsearch-transport-thrift/2.4.0/elasticsearch-transport-thrift-2.4.0.pom"));
```
2014-10-15 11:19:20 +02:00
Michael McCandless 5192b1f872 Core: don't spin 100% CPU when disabling refresh_interval
If refresh was already running when the refresh_interval is
dynamically disabled (set to a non-positive value like 0, -1, etc.),
then it's possible for the refresh thread to go into while (true)
refresh() loop.

Closes #8085

Closes #8087
2014-10-15 04:47:56 -04:00
Simon Willnauer ac4b39bd8f [CORE] Be more explicit if index.version.created is not set
Today we use the current version which might enable features that are
not supported. We should throw an exception if this setting is not
present for any index.

Closes #8018
2014-10-14 20:51:54 +02:00
Michael McCandless 6166911d8a Test: make test less evil to not cause OOME 2014-10-14 11:27:49 -04:00
Adrien Grand cd8e02351b Internal: Fix serialization of PendingClusterTask.timeInQueue.
This parameter is serialized as a vLong while it could sometimes be negative.

Close #8077
2014-10-14 13:17:43 +02:00
Adrien Grand 39ff60e1fd Tests: Add more logging to ExistsMissingTests. 2014-10-14 13:07:25 +02:00
Simon Willnauer bbda203aef [CORE] Remove leftover unused constants 2014-10-14 10:46:03 +02:00
Lee Hinman 2c6d31df36 Clear the GroovyClassLoader cache before compiling
Since we don't use the cache, it's okay to clear it entirely if needed,
Elasticsearch maintains its own cache for compiled scripts.

Adds loader.clearCache() into a listener, the listener is called when a
script is removed from the Guava cache.

This also lowers the amount of cached scripts to 100, since 500 is
around the limit some users have run into before hitting an out of
memory error in permgem.

Fixes #7658
2014-10-14 10:19:34 +02:00
Simon Willnauer d92ee348fd [CORE] Simplify discovery node initialization if version is unknown
Today it's easy to use the wrong version when initializing DiscoveryNode
instances. This commit adds javadocs and a utility constant to
initialize DiscoveryNode instances if the the remotes node version is
unknown.

Closes #8051
2014-10-13 12:30:31 +02:00
Michael McCandless cea72705cf Test: re-enable testUpgrade_0_20 2014-10-13 06:01:46 -04:00
Boaz Leskes cbcc4ec616 Logging: add shard id to logging in InternalIndexService.removeShard 2014-10-13 09:33:46 +02:00
Simon Willnauer 4d598f72fb [TEST] Remove explicit network mode - not needed here 2014-10-13 09:25:46 +02:00
Ryan Ernst 5ec87ca4a1 Temporarily ignore 0.20 upgrade test until it can be made less flaky. 2014-10-12 19:55:51 -07:00
Ryan Ernst 538c44b6bf Admin: Fix upgrade logic to work on lucene major version differences.
Also improved upgrade tests, and added test against static ES 0.20 index
which used Lucene 3.6.

closes #8013
2014-10-12 19:04:59 -07:00
Igor Motov 28a7d63951 Throw parsing exception if terms filter or query has more than one field
Closes #5014
2014-10-12 15:44:02 -04:00
Ryan Ernst 08ba5baab0 Tests: Add assumption to restrict upgrade test from running against
invalid backcompat versions.
2014-10-12 11:35:11 -07:00
Zachary Tong 7821387cca Revert "Aliases: Throw exception if index is null when creating alias"
This reverts commit ee857bc073.
2014-10-10 17:50:30 -04:00
Zachary Tong ee857bc073 Aliases: Throw exception if index is null when creating alias
Fixes a bug where alias creation would allow `null` for index name, which thereby
applied the alias to _all_ indices.  This patch makes the validator throw an
exception if the index is null.

```bash
POST /_aliases
{
   "actions": [
      {
         "add": {
            "alias": "empty-alias",
            "index": null
         }
      }
   ]
}
```
```json
{
   "error": "ActionRequestValidationException[Validation Failed: 1: Alias action [add]: [index] may not be null;]",
   "status": 400
}
```

The reason this bug wasn't caught by the existing tests is because
the old test for nullness only validated against a cluster which had
zero indices.  The null index is translated into "_all", and since
there are no indices, this fails because the index doesn't exist.
 So the test passes.

However, as soon as you add an index, "_all" resolves and you get the
situation described in the original bug report:  null index is
accepted by the alias, resolves to "_all" and gets applied to everything.

Fixes #7976
2014-10-10 16:47:40 -04:00
Zachary Tong 4e2dd770aa Mapper: Throw exception if null_value is set to null
The mapping parser should throw an exception if "null_value" is set to `null`.

Fixes #7273

```bash
PUT /foo
{
  "mappings": {
    "bar": {
      "properties": {
        "exception": {
          "null_value": null,
          "type": "integer"
        }
      }
    }
  }
}
```
```
{
   "error": "MapperParsingException[mapping [bar]]; nested: MapperParsingException[Property [null_value] cannot be null.]; ",
   "status": 400
}
```
2014-10-10 16:29:23 -04:00
javanna 142d7bdd81 Internal: fixed bw comp in ShardSearchTransportRequest
Original indices were introduced in 1.4.0.Beta1 as optional, preceded by a boolean flag that told whether they were empty or not. We have to keep serializing as optional only when reading and writing from/to 1.4.0.Beta1, although the original indices are not optional whenever we go and serialize the request they belong to (which is why the boolean got removed in 1.4.0).
2014-10-10 21:47:45 +02:00
javanna 694cc08625 [TEST] bump benchmark apis version to 2.0.0 2014-10-10 20:53:19 +02:00
Simon Willnauer 1792822bae [CORE] Log if CircuitBreaker is tripping
Today we only throw an exception which might not be logged at all. This
commit adds debug logging if we are tripping a CB.

Closes #8050
2014-10-10 13:02:46 +02:00
Colin Goodheart-Smithe e9f05eed80 Aggregations: Fixes scripted metrics aggregation when used as a sub aggregation
The scripted metric aggregation is now a PER_BUCKET aggregation so that parent buckets are evaluated independently. Also the params and reduceParams are copied for each instance of the aggregator (each parent bucket) so modifications to the values are kept only within the scope of its parent bucket

Closes #8036
2014-10-10 08:54:26 +01:00
Michael McCandless 101ea31fdf Tests: move thread stacks on failure to a RunListener, so it actually works 2014-10-09 18:23:26 -04:00
Michael McCandless 3729b8dbd6 Tests: dump all thread stacks on failure 2014-10-09 10:14:19 -04:00
Adrien Grand ede60df804 Fix serialization of short[] arays.
short[] were mistakenly encoded as a float[]. This is not an issue for the
text-based xcontents that we have (yaml, json) since floats can represent any
short value and are serialized as strings. However, this will make the binary
xcontents serialize shorts as int instead of floats.

Close #7845
2014-10-09 14:13:09 +02:00
Alex Ksikes 4ee91cb331 MLT Query: don't fetch unnecessary stats 2014-10-09 12:49:09 +02:00
Boaz Leskes 3d3c2cd760 add verbose logging during index close 2014-10-09 11:37:52 +02:00
Michael McCandless 668def0ddd Tests: add verbosity to this test case 2014-10-09 05:35:11 -04:00
Martijn van Groningen 5763b24686 Core: Make fetch phase nested doc aware
By letting the fetch phase understand the nested docs structure we can serve nested docs as hits.
The `top_hits` aggregation can because of this commit be placed in a `nested` or `reverse_nested` aggregation.

Closes #7164
2014-10-08 22:21:30 +02:00
javanna 3274e7ea6f Internal: split shard search request into a local and a transport variant
In some cases a shard search request gets created on a node to be only used there and never sent over the transport. This commit clarifies that and creates a new base class called `ShardSearchLocalRequest` that can and will be only used locally. `ShardSearchTransportRequest` on the other hand delegates to the local version but extends `TransportRequest` and is `Streamable`, which means that it is supposed to be sent over the transport.

This way we can make the `OriginalIndices` only required (and mandatory now) in the transport variant.

Took the chance to remove an unused InternalScrollSearchRequest constructor and an empty else branch in `TransportSearchScrollQueryAndFetchAction`.

Closes #7855
2014-10-08 18:57:04 +02:00
Britta Weber 96729b309d [TEST] fix test after pr #8020 2014-10-08 17:45:16 +02:00
Martijn van Groningen 6b26c2021a Parent/child: has_parent filter must take parent filter into account when executing the inner query/filter.
Closes #8020
Closes #7943
2014-10-08 16:50:26 +02:00
Boaz Leskes fb39caa8d4 Tests: two corruptions can fix a file
In some of our tests we corrupt multiple places in a file randomly. If we corrupt the same place twice, we shouldn't fix the file by mistake.
2014-10-08 16:00:35 +02:00
Igor Motov 45d3842214 Docs: clarify wait_for_completion flag in snapshot documentation
Closes #7952
2014-10-08 08:43:06 -04:00
David Pilato 80ca8e5ab6 Admin: add total index memory in `_cat/indices`
This patch adds to `_cat/indices` information about memory usage per index by adding memory used by FieldData, IdCache, Percolate, Segments (memory, index writer, version map).

```
% curl 'localhost:9200/_cat/indices?v&h=i,tm'
i     tm
wiki  8.1gb
test  30.5kb
user  1.9mb
```

Closes #7008
2014-10-08 13:38:00 +02:00
Martijn van Groningen 41d3ba7f29 Tests: Enable check index in tests again.
* Run flush in beforeIndexShardClosed to prevent an empty shard.
* Only run check index if the shard state before closing was: started, relocated or post_recovery
2014-10-08 10:28:02 +02:00
Colin Goodheart-Smithe c047fbda9b Scripting: Created a parameter parse to standardised script options 2014-10-08 08:49:16 +01:00
Simon Willnauer e799ac9bd6 [TEST] Fix content comparison to not take platform dependent control chars into account. 2014-10-08 06:47:02 +02:00
Ryan Ernst 032184bd5e Fix missed places referencing optimize force flag from removal in commit 1ae8195. 2014-10-07 09:06:25 -07:00
Ryan Ernst c06c10bbb0 Remove deprecations from master (follow up to #7922) 2014-10-07 08:35:11 -07:00
Ryan Ernst c021f22523 Add Upgrade API
This commit does the following:
* Add the new API at the rest layer, being backed by the optimize API
  with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will
  remove in master)
* Add test for both synchronous and async upgrade

closes #7884
closes #7922
2014-10-07 08:09:50 -07:00