Commit Graph

4162 Commits

Author SHA1 Message Date
Simon Willnauer e1cf5e745d some plugins share settings - make it easy to filter them 2016-02-03 21:50:06 +01:00
Simon Willnauer 686627be5a Move ModuleTestCase into framework 2016-02-03 21:04:44 +01:00
Ali Beyad 592f5499cd More robust handling of CORS HTTP Access Control
Uses a refactored version of Netty's CORS implementation to provide more
robust cross-origin resource request functionality.  The CORS specific
Elasticsearch parameters remain the same, just the underlying
implementation has changed.

It has also been refactored in a way that allows dropping in Netty's
CORS handler as a replacement once Elasticsearch is upgraded to Netty 4.
2016-02-03 14:50:20 -05:00
Simon Willnauer e02d2e004e Rewrite SettingsFilter to be immutable
This change rewrites the entire settings filtering mechanism to be immutable.
All filters must be registered up-front in the SettingsModule. Filters that are comma-sparated are
not allowed anymore and check on registration.
This commit also adds settings filtering to the default settings recently added to ensure we don't render
filtered settings.
2016-02-03 20:05:55 +01:00
Colin Goodheart-Smithe 761adbb28d Fixed merge errors 2016-02-03 15:08:24 +00:00
Colin Goodheart-Smithe 5d9d91b761 Merge branch 'master' into feature/aggs-refactoring 2016-02-03 14:45:16 +00:00
Nik Everett 5e98094db1 Remove long lines from ElasticsearchException
Mostly just wrapping the exception list.

Also:
* Reworks the docs on ElasticsearchExceptionHandle
* Removes long lines from ExceptionSerializationTests
 * Switches one method from arrow shaped to early returns
 * Adds line breaks
2016-02-03 09:33:02 -05:00
Martijn van Groningen 0d9f535044 ingest: seal all processor and processor factory implementations 2016-02-03 14:53:11 +01:00
Isabel Drost-Fromm 7d787ad1d1 Merge pull request #16411 from MaineC/test-fix/geo-sort-messy
Move non-groovy geo tests from messy tests to core
2016-02-03 14:52:01 +01:00
Simon Willnauer bac6c7c764 Remove dead code 2016-02-03 14:42:11 +01:00
Simon Willnauer 1972487deb Merge pull request #16365 from s1monw/make_settings_strict
Make settings validation strict
2016-02-03 14:29:25 +01:00
Isabel Drost-Fromm f99570b0f4 Split messy geo distance/ geo distance sorting tests.
This splits the geo distance and geo distance sorting tests marked messy:
Test cases that don't really need Groovy support are moved back to the
core test suite closer to the code they actually test.

Relates to #15178
2016-02-03 13:54:07 +01:00
Konrad Beiske 2c247e9d56 Merge pull request #16017 from beiske/xcontent_exclude
Add option to exclude based on paths in XContent
2016-02-03 13:51:49 +01:00
Simon Willnauer a77344d742 Merge branch 'master' into make_settings_strict 2016-02-03 13:21:49 +01:00
Jason Tedor eb9bdd5f8a Shard state action request logging 2016-02-03 06:56:01 -05:00
Jason Tedor 0b474c6cfc Shard state action request logging
This commit modifies the string representation of a shard state action
request. The issue being addressed is that the previous logging would
log "failure: [Unknown]" for shard started actions but this just leads
to confusion that there is a failure but its cause is unknown.

Closes #16396
2016-02-03 06:52:54 -05:00
Robert Muir 20b584c7e1 Merge pull request #16400 from rmuir/lucene_4de5f1d
Upgrade to lucene 5.5.0-snapshot-4de5f1d
2016-02-03 06:45:50 -05:00
Konrad Beiske 42833b0f71 Adjusted indentation 2016-02-03 12:37:38 +01:00
Konrad Beiske 42a44b19aa Fixed parameter order in FilterPathBasedFilter constructor 2016-02-03 12:23:14 +01:00
Konrad Beiske 6f915549c6 Fixed typo in javadoc 2016-02-03 12:18:05 +01:00
Konrad Beiske 0dfb55d72c exclude{Filters}, filters => filters, exclude 2016-02-03 12:11:27 +01:00
Simon Willnauer d5ece77f2a remove dead code 2016-02-03 11:36:11 +01:00
Simon Willnauer 4a4e523357 Merge branch 'master' into make_settings_strict 2016-02-03 11:34:12 +01:00
Konrad Beiske db4c6c96a3 Minor refactoring and indentation fixes 2016-02-03 11:14:00 +01:00
Boaz Leskes 125029bf12 make testTimeoutSendExceptionWithDelayedResponse less timing sensitive 2016-02-03 11:09:50 +01:00
Simon Willnauer ed492901ed Apply feedback from @bleskes and add fix some minor issues 2016-02-03 10:44:06 +01:00
Robert Muir bca0c88df3 Fix versions to match reality 2016-02-02 23:03:38 -05:00
Robert Muir a1edf73205 Revert "Test awaits Lucene snapshot upgrade"
This reverts commit e6a5e79ede.
2016-02-02 22:54:36 -05:00
Robert Muir d5dc05f69e Upgrade to lucene 5.5.0-snapshot-1725675 2016-02-02 22:53:39 -05:00
Tal Levy b653e80314 fix ingest client put error test 2016-02-02 15:24:58 -08:00
Jason Tedor 8b37827ac6 Guard against null routing node iterator 2016-02-02 18:14:37 -05:00
Jason Tedor a3a49a12ef Illegal shard failure requests
Today, shard failure requests are blindly handled on the master without
any validation that the request is a legal request. A legal request is a
shard failure request for which the shard requesting the failure is
either the local allocation or the primary allocation. This is because
shard failure requests are classified into only two sets: requests that
correspond to shards that exist, and requests that correspond to shards
that do not exist. Requests that correspond to shards that do not exist
are immediately marked as successful (there is nothing to do), and
requests that correspond to shards that do exist are sent to the
allocation service for handling the failure.

This pull request adds a third classification for shard failure requests
to separate out illegal shard failure requests and enables the master to
validate shard failure requests. The master communicates the illegality
of a shard failure request via a new exception:
NoLongerPrimaryShardException. This exception can be used by shard
failure listeners to discover when they've sent a shard failure request
that they were not allowed to send (e.g., if they are no longer the
primary allocation for the shard).

Closes #16275
2016-02-02 17:41:09 -05:00
Tal Levy 9e7e2ab10b remove DeDotProcessor from Ingest 2016-02-02 14:16:01 -08:00
Tal Levy 3191fc7347 Merge pull request #16355 from talevy/fix_ingest_exception
revert PipelineFactoryError handling with throwing ElasticsearchParseException in ingest pipeline creation
2016-02-02 14:11:24 -08:00
Tal Levy 0a1580eefa revert PipelineFactoryError handling with throwing ElasticsearchParseException in ingest pipeline creation 2016-02-02 14:08:22 -08:00
Ryan Ernst 9f47b376da Plugin cli: Improve maven coordinates detection
Identifying when a plugin id is maven coordinates is currently done by
checking if the plugin id contains 2 colons. However, a valid url could
have 2 colons, for example when a port is specified. This change adds
another check, ensuring the plugin id with maven coordinates does not
contain a slash, which only a url would have.

closes #16376
2016-02-02 12:17:56 -08:00
Tanguy Leroux 865bbc2096 Remove string formatting from Terminal print methods
This can be trappy and wrong formating strings can throws format exceptions and hide the real message.
2016-02-02 19:57:16 +01:00
Jason Tedor e6a5e79ede Test awaits Lucene snapshot upgrade
This commit marks OldIndexBackwardsCompatibilityIT#testOldIndexes as
awaiting a Lucene snapshot upgrade to reflect the fact that
Elasticsearch 2.2.0 is built against Lucene 5.4.1 but the current Lucene
snapshot in master/2.x does not contain the Lucene version 5.4.1 field.

Relates #16373
2016-02-02 10:01:37 -05:00
Jason Tedor 1e6b2d4f1d Fix JVM GC monitor missing settings test
This commit fixes a test bug in
JvmGcMonitorServiceSettingsTests#testMissingSetting. The purpose of the
test is to test that if settings are provided for a collector for at
least one of warn, info, and debug then it is provided for all of warn,
info, and debug. However, for a collector setting to be valid it must be
a positive time value but the randomization in the test construction
could produce zero time values.

Closes #16369
2016-02-02 08:49:47 -05:00
Clinton Gormley 58b6db8d82 Added versions 2.1.3-SNAPSHOT and 2.2.1-SNAPSHOT, and bwc indices for 2.1.2 and 2.2.0 2016-02-02 14:39:21 +01:00
Yannick Welsch 13ad335416 Fix compilation in TransportReplicationActionTests 2016-02-02 14:08:19 +01:00
Yannick Welsch 8cca0395ef Revert "Make GeoDistanceSortBuilder serializable"
This reverts commit c108a4ce6d.
2016-02-02 14:04:45 +01:00
Yannick Welsch 089ab7d9bf Revert "Remove deprecation for geohash setter"
This reverts commit b5a4e99344.
2016-02-02 14:03:58 +01:00
Yannick Welsch c5a6ddfdc2 Merge pull request #16274 from ywelsch/fix/endless-index-loop
Prevent TransportReplicationAction to route request based on stale local routing table
2016-02-02 13:59:54 +01:00
Yannick Welsch cd53772178 Use allocation ids to prevent repeated recovery of failed shards
Closes #16346
2016-02-02 13:54:27 +01:00
Yannick Welsch af1f637547 Prevent TransportReplicationAction to route request based on stale local routing table
Closes #16274
Closes #12573
Closes #12574
2016-02-02 13:52:45 +01:00
Isabel Drost-Fromm b5a4e99344 Remove deprecation for geohash setter
This removes the deprecation for the geohash based setter to quickly fix the failure here: http://build-us-00.elastic.co/job/es_core_master_suse/3312 

Reintroducing postponed until related test in groovy module is fixed. Need to figure out what went wrong when I ran the build locally w/o failure before.
2016-02-02 13:09:34 +01:00
Yannick Welsch 51862ce5ae Fix IndexShardTests.testStressRelocated
Closes #16364
2016-02-02 12:57:19 +01:00
Boaz Leskes 58825773eb Remove `discovery.zen.rejoin_on_master_gone`
That setting was built as an escape hatch for the work done in 1.4. I never heard it being used once. We can safely remove it.

Closes #16353
2016-02-02 12:15:56 +01:00
Isabel Drost-Fromm df45c75594 Merge pull request #16151 from MaineC/enhancement/15178-sort-geosortbuilder
Refactor GeoSortBuilder
2016-02-02 12:14:35 +01:00
Alexander Reelsen 2366b3593f BWC: Added 1.7 version constants and bwc indices 2016-02-02 12:08:11 +01:00
Simon Willnauer 818a9eefb2 Make settings validation strict
This commit enableds strict settings validation on node startup. All settings
passed to elasticsearch either through system properties, yaml files or any other
way to pass settings must be registered and valid. Settings that are unknown ie. due to
typos or due to deprecation or removal will cause the node to NOT start up. Plugins
have to declare all their settings on the `SettingsModule#registerSetting` and settings for
plugins that are not installed must be removed.

This commit also removes the ability to specify the nodes name via `-Des.name` or just `name` in the
configuration files. The node name must be prefixed with the node prexif like `node.name: Boom`. Left over
usage of `name` will also cause startup to fail.
2016-02-02 11:32:44 +01:00
Isabel Drost-Fromm c108a4ce6d Make GeoDistanceSortBuilder serializable
Adds to GeoDistanceSortBuilder:

* equals
* hashcode
* writeto/readfrom
* moves xcontent parsing logic over
* adds roundtrip tests
* fixes roundtrip test for xcontent by keeping points just as geopoints not geohashes internally
* fixes xcontent parsing of ignore_malformed if coerce is set/unset
* adds exception to sortMode setter to avoid setting invalid sort modes

Relates to #15178
2016-02-02 11:24:32 +01:00
Tanguy Leroux a7fb5a27cc Mute IndexShardTests.testStressRelocated 2016-02-02 11:12:58 +01:00
Yannick Welsch 10b5ffcda5 Add proper handoff between old and new copy of relocating primary shard
When primary relocation completes, a cluster state is propagated that deactivates the old primary and marks the new primary as active.
As cluster state changes are not applied synchronously on all nodes, there can be a time interval where the relocation target has processed
the cluster state and believes to be the active primary and the relocation source has not yet processed the cluster state update and
still believes itself to be the active primary. This commit ensures that, before completing the relocation, the reloction source deactivates
writing to its store and delegates requests to the relocation target.

Closes #15900
2016-02-02 09:46:55 +01:00
Yannick Welsch e1006ea400 Add operation counter for IndexShard
Adds a container that represents a resource with reference counting capabilities. Provides operations to suspend acquisition of new references. Useful for resource management when resources are intermittently unavailable.

Closes #15956
2016-02-02 09:46:55 +01:00
Nik Everett d91a898f6a Merge pull request #16330 from nik9000/line_length_1
Start to break lines at 140 characters
2016-02-01 21:41:47 -05:00
Nik Everett 07cba65c1b Start to break lines at 140 characters
Its what we say our maximum line length is in CONTRIBUTING.md and it'd be
nice to have a check on that. Unfortunately, we don't actually wrap all lines
at 140.
2016-02-01 21:09:35 -05:00
Ryan Ernst a2c37c0989 CliTool: Allow unexpected exceptions to propagate
Cli tools currently catch all exceptions, and only print the exception
message, except when a special system property is set. Even with this
flag set, certain exceptions, like IOException, are captured and their
stack trace is always lost.

This change adds a UserError class, which can be used a cli tools to
specify a message to the user, as well as an exit status. All other
exceptions are propagated out of main, so java will exit with non-zero
and print the stack trace.
2016-02-01 16:35:22 -08:00
Nik Everett c1d4478067 Merge branch 'master' into feature/reindex 2016-02-01 18:33:09 -05:00
Tal Levy dcb88909d5 Merge pull request #16324 from talevy/ingest_on_failure_tag
Add processor tags to on_failure metadata in ingest pipeline
2016-02-01 10:13:26 -08:00
Jason Tedor 24a841a075 ShardId equality and hash code inconsistency
This commit fixes an inconsistency between ShardId#equals(Object),
ShardId#hashCode, and ShardId#compareTo(ShardId). In particular,
ShardId#equals(Object) compared only the numerical shard ID and the
index name, but did not compare the index UUID; a similar situation
applies to ShardId#compareTo(ShardId). However, ShardId#hashCode
incorporated the indexUUID into its calculation. This can lead to
situations where two ShardIds compare as equal yet have different hash
codes.

Closes #16319
2016-02-01 11:56:50 -05:00
Ryan Ernst 01b80b100e Merge pull request #16333 from rjernst/single_node_static
Make single node utility methods non-static
2016-02-01 08:46:54 -08:00
Ryan Ernst 3787f437ec Merge branch 'master' into remove_multicast 2016-02-01 07:25:45 -08:00
Ryan Ernst 661e3c99f7 Merge pull request #16336 from rjernst/demangle
Reduce complexity of plugin cli
2016-02-01 07:20:04 -08:00
Colin Goodheart-Smithe 2d2e9e0621 fixed issue from merge 2016-02-01 13:57:38 +00:00
Colin Goodheart-Smithe a241983c9d Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/test/java/org/elasticsearch/search/aggregations/AggregationsBinaryIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java
#	core/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java
#	modules/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java
#	modules/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java
2016-02-01 13:38:33 +00:00
Jason Tedor ed7bc5ba16 Unused variables in TransportReplicationAction 2016-02-01 08:12:34 -05:00
Colin Goodheart-Smithe 745e8f96e7 Moved http settings to the new settings infrastructure
The following settings were moved to Setting contents in HttpTransportSettings:

* http.cors.allow-origin
* http.port
* http.publish_port
* http.detailed_errors.enabled
* http.max_content_length
* http.max_chunk_size
* http.max_header_size
* http.max_initial_line_length

The following settings were removed:

* http.port
* http.netty.port
* http.netty.publish_port
* http.netty.max_content_length
* http.netty.max_chunk_size
* http.netty.max_header_size
* http.netty.max_initial_line_length
2016-02-01 12:56:41 +00:00
Simon Willnauer 008aa2c316 Merge pull request #16341 from s1monw/cache_settings
Convert PageCacheRecycler settings
2016-02-01 13:51:19 +01:00
Christoph Büscher 61c435e6a9 PhraseSuggestionBuilde: Refactor DirectCandidateGenerator
As a prerequisite for refactoring the whole PhraseSuggestionBuilder
to be able to be parsed and streamed from the coordinating node, the
DirectCandidateGenerator must implement Writeable, be able to parse
a new instance (fromXContent()) and later when transported to the
shard to generate a PhraseSuggestionContext.DirectCandidateGenerator.
Also adding equals/hashCode and tests and moving DirectCandidateGenerator
to its own DirectCandidateGeneratorBuilder class.
2016-02-01 12:22:48 +01:00
Simon Willnauer aa5f9d5158 Convert PageCacheRecycler settings 2016-02-01 11:34:19 +01:00
Boaz Leskes 856883fcc5 Local Discovery - don't create a local DiscoNode, but use the one from cluster service
Long ago (#7834) the owner ship of the local disco node was centralized to the cluster service. LocalDiscovery is still created it's own disco node, which is not used by the cluster service and thus creating confusion (two nodes same name but different ids).

This commit also removes and optimization where when joining a new master we would first copy the master's metadata and only then pull in the rest of the cluster state (and it's nodes).

Closes #16317
2016-02-01 11:05:40 +01:00
Boaz Leskes df80e8f215 Migrate the rest of NettyTransport settings to the new infra
Also does some consistency clean up, renaming trasnport.netty.* settings to transport.*

Closes #16307
2016-02-01 10:26:52 +01:00
Simon Willnauer af0e40ec7d Merge pull request #16316 from s1monw/isseus/13685_2nd_try
Ensure all resoruces are closed on Node#close()
2016-02-01 10:17:57 +01:00
Ryan Ernst a052dfeb38 Plugins: Reduce complexity of plugin cli
The plugin cli currently is extremely lenient, allowing most errors to
simply be logged. This can lead to either corrupt installations (eg
partially installed plugins), or confused users.

This change rewrites the plugin cli to have almost no leniency.
Unfortunately it was not possible to remove all leniency, due in
particular to how config files are handled.

The following functionality was simplified:
* The format of the name argument to install a plugin is now an official
  plugin name, maven coordinates, or a URL.
* Checksum files are required, and only checked, for official plugins
  and maven plugins. Checksums are also only SHA1.
* Downloading no longer uses a separate thread, and no longer has a timeout.
* Installation, and removal, attempts to be atomic. This only truly works
  when no config or bin files exist.
* config and bin directories are verified before copying is attempted.
* Permissions and user/group are no longer set on config and bin files.
  We rely on the users umask.
* config and bin directories must only contain files, no subdirectories.
* The code is reorganized so each command is a separate class. These
  classes already existed, but were embedded in the plugin cli class, as
  an extra layer between the cli code and the code running for each command.
2016-01-31 20:30:45 -08:00
Ryan Ernst a398ba839c Tests: Make single node utility methods non-static
With the recent change to allow ESSingleNodeTestCase to specify plugins
and Version for the node, node creation became lazy, where it now
happens before the first test to run. However, there were many static
methods on ESSingleNodeTestCase that still try to access the node. This
change makes those methods non-static.
2016-01-31 09:58:41 -08:00
Jason Tedor 105411060c Uppercase ells ('L') in long literals
This commit removes and forbids the use of lowercase ells ('l') in long
literals because they are often hard to distinguish from the digit
representing one ('1').

Closes #16329
2016-01-30 22:16:02 -05:00
Lee Hinman 4e8623f8f4 Merge remote-tracking branch 'dakrone/add-ex-name-to-msg' 2016-01-30 16:28:03 -07:00
Lee Hinman 7e05b34708 Add Exception class name to message in `NotSerializableExceptionWrapper`
Previously it's possible to get errors like:

```
Caused by: NotSerializableExceptionWrapper[d:\shared_data\afs-issue-1-1\23]
```

Which doesn't tell us what the underlying exception type was that could
not be serialized.

This changes the message to prepend the
`ElasticsearchException.getExceptionName()` of the exception (which is a
underscore case of the class with the leading 'Elasticsearch' removed)
2016-01-30 16:27:24 -07:00
Jason Tedor 2a78e02fe9 Log shard ID in TransportReplicationAction
This commit amends a logging statement in TransportReplicationAction to
log the full shard ID instead of just the numerical shard ID (without
the index name).
2016-01-30 09:27:38 -05:00
Ryan Ernst b8f08c35ec Plugin: Remove multicast plugin
closes #16310.
2016-01-29 18:41:31 -08:00
Tal Levy 61e4283a16 Add processor tags to on_failure metadata in ingest pipeline
closes #16202
2016-01-29 14:36:11 -08:00
Tal Levy fca442f4d1 Introduce Pipeline Factory Error Responses in Node Ingest
When there is an exception thrown during pipeline creation within
Rest calls (in put pipeline, and simulate) We now return a structured
error response to the user with details around which processor's
configuration is the cause of the issue, or which configuration property
is misconfigured, etc.
2016-01-29 13:37:27 -08:00
Nik Everett ee35972f3d Less wrapping 2016-01-29 13:05:25 -05:00
Simon Willnauer 6814f24009 Cleanup Relesables now that we can delegate to IOUtils 2016-01-29 17:02:40 +01:00
Simon Willnauer 15841081f6 Disambiguate TestCluster implementation since Client is now also Closeable and if we call IOUtils it might interpret it as a Iterable<Closeable> 2016-01-29 16:51:06 +01:00
Nik Everett ab79ff73af Log any errors in reindex task
Does so by introducing TaskListener which is just like ActionListener but
gets the Task as each parameter. Unlike ActionListener which is used
_everywhere_ you can only use TaskListener directly with TransportAction.
TransportAction under the covers uses an ActionListener implemetation that
closes over the task to call the TaskListener.
2016-01-29 10:33:08 -05:00
Simon Willnauer ac87751b3d Use IOUtils#close() where needed 2016-01-29 16:26:37 +01:00
Jason Tedor c7b8fecb0e Merge pull request #16313 from jasontedor/monitor-settings
Monitor settings
2016-01-29 10:21:38 -05:00
Simon Willnauer 87737d3e02 Ensure all resoruces are closed on Node#close()
We are leaking all kinds of resources if something during Node#close() barfs.
This commit cuts over to a list of closeables to release resources that
also closed remaining services if one or more services fail to close.

Closes #13685
2016-01-29 16:18:21 +01:00
Jason Tedor a1fd01d4cc No leniency in parsing JVM GC monitor settings
This commit removes some leniency in the parsing of the JVM GC monitor
settings, and adds tests for the JVM GC monitor settings.
2016-01-29 10:07:34 -05:00
Simon Willnauer f89e63f988 Merge pull request #16315 from s1monw/issues/16299
Use index name rather than the index object to check against existence in the set
2016-01-29 15:19:43 +01:00
Boaz Leskes 9aceddb9e2 Missing CLUSTER_ROUTING_ALLOCATION_ALLOW_REBALANCE_SETTING.getKey() 2016-01-29 15:17:46 +01:00
Simon Willnauer 838edab168 Use index name rather than the index object to check against existence in the set
This is an issue due to some refactoring we did along the lines of Index.java etc.
We pass the index object to Set#contains which should actually be only it's name.

Closes #16299
2016-01-29 15:09:48 +01:00
Simon Willnauer 14017d4ad8 Merge pull request #16311 from s1monw/cut_over_tribe_settings
Cut over tribe node settings to new settings infra
2016-01-29 14:23:50 +01:00
Jason Tedor ea56bfad9a JVM GC monitor settings
This commit converts the GC monitor settings "monitor.jvm.gc.*" to the
new settings infrastructure.
2016-01-29 08:07:27 -05:00
Jason Tedor 3f53e143a5 FS monitor refresh interval setting
This commit converts the FS monitor refresh interval setting
"monitor.fs.refresh_interval" to the new settings infrastructure.
2016-01-29 07:58:57 -05:00
Jason Tedor aac53c9210 JVM monitor refresh interval setting
This commit converts the JVM monitor refresh interval setting
"monitor.jvm.refresh_interval" to the new settings infrastructure.
2016-01-29 07:58:56 -05:00
Simon Willnauer 65c0f80b13 Merge pull request #16308 from s1monw/never_interrupt_store_checks
Prevent interruption while store checks lucene files for consistency
2016-01-29 13:04:55 +01:00
Simon Willnauer 4c8768eeb7 Cut over tribe node settings to new settings infra 2016-01-29 13:03:55 +01:00
Colin Goodheart-Smithe 859f9e69b7 Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java
#	core/src/main/java/org/elasticsearch/percolator/PercolateContext.java
#	core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java
#	core/src/main/java/org/elasticsearch/search/internal/DefaultSearchContext.java
#	core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java
2016-01-29 11:58:19 +00:00
Jason Tedor 4eed71cad2 Process monitor refresh interval setting
This commit converts the process monitor refresh interval setting
"monitor.process.refresh_interval" to the new settings infrastructure.
2016-01-29 06:52:29 -05:00
Jason Tedor d13739fcb9 OS monitor refresh interval setting
This commit converts the OS monitor refresh interval setting
"monitor.os.refresh_interval" to the new settings infrastructure.
2016-01-29 06:49:43 -05:00
Simon Willnauer 74a1959c3b Merge pull request #16305 from s1monw/issues/16301
Add a hard check to ensure we are running with the expected lucene version
2016-01-29 12:17:35 +01:00
Simon Willnauer f6b922a97a Prevent interruption while store checks lucene files for consistency
This can cause premature closing of the underlying file descriptor immediately
if at the same time the thread is blocked on IO. The file descriptor will remain closed
and subsequent access to NIOFSDirectory will throw a ClosedChannelException.
2016-01-29 12:09:00 +01:00
Simon Willnauer fa17a84a89 Add a hard check to ensure we are running with the expected lucene version
Closes #16301
2016-01-29 11:59:31 +01:00
Martijn van Groningen ce89039926 percolator: If `index.percolator.map_unmapped_fields_as_string` is enabled then don't replace found fields with dummy string field
Closes #10500
2016-01-29 11:45:54 +01:00
Martijn van Groningen 6c34452409 inner hits: Query and top level inner hit definitions shouldn't overwrite each other.
Closes #16218
2016-01-29 10:52:04 +01:00
Christoph Büscher b039360d2e Merge pull request #16130 from cbuescher/refactor-smoothingModel
Enable Writeable serialization and parsing from xContent for SmoothingModels
2016-01-29 10:49:34 +01:00
Christoph Büscher aefdee17fd Adding builder method to SmoothingModel implementations
Adds a method that emits a WordScorerFactory to all of the
three SmoothingModel implementatins that will be needed when
we switch to parsing the PhraseSuggestion on the coordinating
node and need to delay creating the WordScorer on the shards.
2016-01-29 10:21:31 +01:00
Martijn van Groningen f5e89f7242 mappings: remove fly weight 2016-01-29 10:12:39 +01:00
Martijn van Groningen 9ec1b11148 term vectors: The term vector APIs no longer modify the mappings if an unmapped field is found 2016-01-29 09:32:40 +01:00
Ali Beyad e3816d58ae TribeIT.testOnConflictDrop test awaits fix until #16299 is resolved 2016-01-28 17:10:04 -05:00
Jason Tedor 90284e6f01 Merge pull request #16061 from jasontedor/normalize-unavailable-load-average
Normalize unavailable load average

Relates #12049, #14741, #15907, #15932, #15934
2016-01-28 15:38:36 -05:00
Igor Motov e035dabd4d Extend tracking of parent tasks to master node, replication and broadcast actions
Now MasterNodeOperations, ReplicationAllShards, ReplicationSingleShard,  BroadcastReplication and BroadcastByNode actions keep track of their parent tasks.
2016-01-28 12:13:36 -05:00
Nik Everett b2ce0e02d5 Switch NodeEnvironment's settings to new settings
And add a few more tests.
2016-01-28 11:43:09 -05:00
Simon Willnauer 687d1d83fa Convert multcast plugin settings to the new infra 2016-01-28 17:01:01 +01:00
Simon Willnauer 7dce8e18c6 Merge pull request #16289 from s1monw/validate_logger_settings
Validate logger settings and allow them to be reset via API
2016-01-28 17:00:06 +01:00
Simon Willnauer 3509ceaa80 simplify dynamic key setting and make it generally useful 2016-01-28 16:16:24 +01:00
Konrad Beiske a0d8d656fc Added exclusive filter tests to AbstractFilteringJsonGeneratorTestCase 2016-01-28 16:12:57 +01:00
Simon Willnauer 23d41ce42f Merge branch 'master' into validate_logger_settings 2016-01-28 15:07:00 +01:00
Daniel Mitterdorfer 3b225f7c90 Revert default value for 'index.requests.cache.enable'
With this commit we revert the default value for the setting
'index.requests.cache.enable' again to false, which has been
set to true by accident in PR #16054.

Checked with @s1monw
2016-01-28 15:05:59 +01:00
Simon Willnauer 05006624af Merge branch 'master' into request_header_setting 2016-01-28 15:04:10 +01:00
Boaz Leskes 68070074da Begin migration of NettyTransport setting to the new platform
Note for many of the settings we had a netty specific override to a generic transport setting. I have removed those as they are not needed imo (ex. "transport.connections_per_node.recovery" was overriden by "transport.netty.connections_per_node.recovery", which I removed). The netty prefix was kept for settings that are tied to the netty universe - ex. "transport.netty.max_cumulation_buffer_capacity"

Closes #16200
2016-01-28 14:56:55 +01:00
Simon Willnauer 7ddf842348 Convert `request.headers.*` to the new settings infra 2016-01-28 14:55:26 +01:00
Simon Willnauer d65635e478 remove unused / unsupported setting 2016-01-28 14:51:42 +01:00
Simon Willnauer 41b09c5fe8 Add indices.requests.cache.clean_interval as a known settings 2016-01-28 14:13:32 +01:00
Simon Willnauer 744875e03f remove commented out debug changes 2016-01-28 12:23:10 +01:00
Simon Willnauer b07e3145d5 Validate logger settings and allow them to be reset via API
Today our logger settings are treated differently than all other
settings. This was a shortcut / workaround since it's quite messy but now
that we have strict validation and transactional updates we should integrate the
logger settings there as well. This commit makes the logger settings a build-in
settings updater and removes all the special code-paths we had for these settings.
Logger settings now also updateable and resetttable by passing `null`
2016-01-28 12:20:25 +01:00
Mike McCandless 0cc94168dc Make sure IndexShard is active during recovery so that it gets its fair share of the indexing buffer
Closes #16250
2016-01-28 06:01:06 -05:00
Simon Willnauer 2ca3433bea Use targetTransport.threadPool to stash context not the local one 2016-01-28 09:56:06 +01:00
Boaz Leskes 2a137b5548 Make index uuid available in Index, ShardRouting & ShardId
In the early days Elasticsearch used to use the index name as the index identity. Around 1.0.0 we introduced a unique index uuid which is stored in the index setting. Since then we used that uuid in a few places but it is by far not the main identifier when working with indices, partially because it's not always readily available in all places.

This PR start to make a move in the direction of using uuids instead of name by making sure that the uuid is available on the Index class (currently just a wrapper around the name) and as such also available via ShardRouting and ShardId.

Note that this is by no means an attempt to do the right thing with the uuid in all places. In almost all places it falls back to the name based comparison that was done before. It is meant as a first step towards slowly improving the situation.

Closes #16217
2016-01-28 08:40:10 +01:00
Igor Motov 8c5171fac8 Tests: add common blob store tests for reuse in plugins
Adds unit tests for blob operations and integration tests for repository operations. These tests can be used by repository plugins to verify that repository operations were implemented as expected by BlobStoreRepository.
2016-01-27 19:08:26 -05:00
Simon Willnauer 7ef762c8f0 Only rethrow exceptions if they are coming from the actual runnable but not if we are shutting down the pool 2016-01-27 21:06:24 +01:00
Jack Conradson 5b836dbb11 Renamed the scripting language Plan A to Painless.
Closes #16245
2016-01-27 10:37:34 -08:00
Jim Ferenczi 1343d6cbd1 Remove search_after from the query string param of the rest api spec.
Handle null values in search_after.
Ensure that the cluster is green after each index creation in the integ tests.
2016-01-27 19:21:01 +01:00
Simon Willnauer cefa5da08c Merge branch 'master' into more_settings 2016-01-27 17:45:13 +01:00
Simon Willnauer 192872cadb Merge pull request #15776 from s1monw/trash_context_and_headers
Replace ContextAndHeaders with a ThreadPool based ThreadLocal implementation
2016-01-27 17:29:17 +01:00
Luca Cavanna ca2924eb66 Merge pull request #16270 from javanna/enhancement/auto_create_index_tests
Simplify AutoCreateIndex and add more tests
2016-01-27 17:23:49 +01:00
Simon Willnauer ccd819229d ensure we don't fail if the executor is shut down 2016-01-27 17:04:26 +01:00
Simon Willnauer 7ff99eb89d Merge branch 'master' into trash_context_and_headers
if (name == 'expamle-fixtures') return
2016-01-27 16:33:50 +01:00
javanna a029c0ae62 Simplify AutoCreateIndex and add more tests 2016-01-27 16:33:41 +01:00
Simon Willnauer d296d26ce2 Convert `client.type` to new settings infra 2016-01-27 16:20:26 +01:00
Adrien Grand a8c967306a Merge pull request #16267 from jpountz/query_cache_settings_new_infra
Migrate query caching settings to the new settings infra.
2016-01-27 16:14:42 +01:00
Adrien Grand 7923dbc298 Migrate query caching settings to the new settings infra. 2016-01-27 16:12:32 +01:00
Simon Willnauer bbba1e5d7f Convert `config.ignore_system_properties` to new settings infra 2016-01-27 16:10:06 +01:00
Simon Willnauer 1c1898cf42 Convert `cluster.name` to the new settings infra 2016-01-27 16:04:45 +01:00
Colin Goodheart-Smithe 187009c12c Merge branch 'master' into feature/aggs-refactoring 2016-01-27 14:54:12 +00:00
Simon Willnauer 08f7071611 Convert to new settings infra 2016-01-27 15:52:34 +01:00
Simon Willnauer 1df7d4d5b5 Merge pull request #16257 from s1monw/no_fsync_on_every_operation
Remove the ability to fsync on every operation and only schedule fsync task if really needed
2016-01-27 15:48:30 +01:00
Simon Willnauer 98bc9de792 apply feedback from @mikemccand 2016-01-27 15:38:15 +01:00
Simon Willnauer dd3bd6d228 Merge pull request #16263 from s1monw/convert_action_settings
Convert `action.auto_create_index` and `action.master.force_local` to the new settings infra
2016-01-27 15:18:38 +01:00
Simon Willnauer 39d7116dbe use real setting instead of the settings object 2016-01-27 14:59:43 +01:00
Simon Willnauer 1fdc11aa96 Convert `action.auto_create_index` and `action.master.force_local` to the new settings infra 2016-01-27 14:33:55 +01:00
Luca Cavanna 783c1608f3 Merge pull request #16242 from javanna/enhancement/ingest_actions
Ingest: move get/put/delete pipeline methods to ClusterAdminClient
2016-01-27 14:04:14 +01:00
javanna 1a13022847 Ingest: move also simulate to ClusterAdminClient 2016-01-27 13:29:02 +01:00
javanna 1317cf2132 Ingest: move get/put/delete pipeline methods to ClusterAdminClient
These methods allow to modify and retrieve the content of pipelines, which are stored in the cluster state. Their actions names were already correct under the category cluster:admin/ingest/pipeline/* , the corresponding methods should be moved under client.admin().cluster() .
2016-01-27 13:20:53 +01:00
javanna 533af17068 Tribe node: pass path.conf to inner tribe clients
If we don't do this, and some path.conf is set when starting the tribe node, that path.conf will be ignored and the inner tribe clients will try to read elsewhere, where they most likely don't have permissions to read from.

Closes #16253
Closes #16258
2016-01-27 13:19:56 +01:00
Jim Ferenczi 3bdb54e529 Fixed sporadic errors in SearchAfterIT: ack the create and index method calls in the search_after integ test 2016-01-27 13:13:25 +01:00
Simon Willnauer 84ce9f3618 Remove the ability to fsync on every operation and only schedule fsync task if really needed
This commit limits the `index.translog.sync_interval` to a value not less than `100ms` and
removes the support for fsync on every operation which used to be enabled if `index.translog.sync_interval` was set to `0s`
Now this pr also only schedules an async fsync if the durability is set to `async`. By default not async task is scheduled.

Closes #16152
2016-01-27 12:28:38 +01:00
Jason Tedor 284cc3a048 Script mode settings as booleans
This commit modifies the accept values for script mode settings from
"on", "off", and "sandbox" to "true", "false", and "sandbox".
2016-01-27 06:26:58 -05:00
Jason Tedor 9944573449 Rename methods on ScriptEngineService
This commit method renames the ScriptEngineService interface methods
types, extensions, and sandboxed to getTypes, getExtensions, and
isSandboxed, respectively.
2016-01-27 06:26:04 -05:00
Jason Tedor 6894594979 Add guards for invalid script engine registrations
This commit adds some simple checks against invalid script engine
service registrations.
2016-01-27 06:26:04 -05:00
Jason Tedor c01d36e9ee Script default lang setting
This commit converts the script default language setting
"script.default_lang" to the new settings infrastructure.
2016-01-27 06:26:04 -05:00
Jason Tedor 087e55cc51 Script mode settings
This commit converts the script mode settings to the new settings
infrastructure. This is a major refactoring of the handling of script
mode settings. This refactoring is necessary because these settings are
determined at runtime based on the registered script engines and the
registered script contexts.
2016-01-27 06:26:04 -05:00
Jason Tedor 76733944d3 Script auto reload enabled setting
This commit converts the script auto reload enabled setting
"script.auto_reload_enabled" to the new settings infrastructure.
2016-01-27 06:26:04 -05:00
Jason Tedor eb6aaefae5 Script cache expiration setting
This commit converts the script cache expiration setting
"script.cache.expire" to the new settings infrastructure.
2016-01-27 06:26:04 -05:00
Simon Willnauer 21dc50966f Fix compile errors - ingest still used old context and headers APIs 2016-01-27 11:48:03 +01:00
Simon Willnauer 71c3e57aee Merge branch 'master' into trash_context_and_headers 2016-01-27 11:42:42 +01:00
Simon Willnauer f8cb1912af Merge pull request #16238 from s1monw/convert_some_settings
Convert `cluster.routing.allocation.type` and `processors` to the new settings infra.
2016-01-27 11:38:01 +01:00
Simon Willnauer d3db3c6904 Ignore non-grouped tribe settings 2016-01-27 11:36:20 +01:00
Simon Willnauer 0404db65e3 Merge branch 'master' into convert_some_settings 2016-01-27 11:31:00 +01:00
Simon Willnauer 63da9281a9 Merge pull request #16237 from s1monw/validate_tribe_settings
Validate tribe node settings on startup
2016-01-27 11:11:43 +01:00
Simon Willnauer 9cb9bdb736 Merge pull request #16232 from s1monw/use_version_id_in_settings
Use Version#id to parse version from settings.
2016-01-27 11:10:44 +01:00
Jim Ferenczi aea7660e37 Add search_after parameter in the Search API.
The search_after parameter provides a way to efficiently paginate from one page to the next. This parameter accepts an array of sort values, those values are then used by the searcher to sort the top hits from the first document that is greater to the sort values.
This parameter must be used in conjunction with the sort parameter, it must contain exactly the same number of values than the number of fields to sort on.

NOTE: A field with one unique value per document should be used as the last element of the sort specification. Otherwise the sort order for documents that have the same sort values would be undefined. The recommended way is to use the field `_uuid` which is certain to contain one unique value for each document.

Fixes #8192
2016-01-27 09:42:58 +01:00
Adrien Grand 54dd819616 Merge pull request #16179 from jpountz/fix/fail_earlier_on_disabled_fielddata
Make disabled fielddata loading fail earlier.
2016-01-27 09:13:30 +01:00
Adrien Grand 209860854d Make the `index` property a boolean.
With the split of `string` into `text` and `keyword`, the `index` property can
only have two values and should be a boolean.
2016-01-27 09:06:00 +01:00
Adrien Grand 2aaa5e6448 Remove the ability to enable doc values with the `fielddata.format` setting.
Doc values can now only be enabled by setting `doc_values: true` in the
mappings. Removing this feature also means that we can now fail mapping updates
that try to disable doc values.
2016-01-27 09:06:00 +01:00
Adrien Grand 35709f62b6 Be stricter about parsing boolean values in mappings.
Parsing is currently very lenient, which has the bad side-effect that if you
have a typo and pass eg. `store: fasle` this will actually be interpreted as
`store: true`. Since mappings can't be changed after the fact, it is quite bad
if it happens on an index that already contains data.

Note that this does not cover all settings that accept a boolean, but since the
PR was quite hard to build and already covers some main settirgs like `store`
or `doc_values` this would already be a good incremental improvement.
2016-01-27 09:06:00 +01:00
Adrien Grand f959d39ac3 Fix default doc values to be enabled when a field is not indexed.
Doc values currently default to `true` if the field is indexed and not analyzed.
So setting `index:no` automatically disables doc values, which is not explicit
in the documentation.

This commit makes doc values default to true for numerics, booleans regardless
of whether they are indexed. Not indexed strings still don't have doc values,
since we can't know whether it is rather a text or keyword field. This
potential source of confusion should go away when we split `string` into `text`
and `keyword`.
2016-01-27 09:06:00 +01:00
Daniel Mitterdorfer 4bf1e31443 Merge remote-tracking branch 'danielmitterdorfer/deprecate-fuzzy-query' 2016-01-27 08:20:53 +01:00
Martijn van Groningen 15567506b2 ingest: The IngestDocument copy constructor should make a deep copy instead of shallow copy
Closes #16246
2016-01-26 22:44:18 +01:00
Jason Tedor 392814ea6f Shard failure requests for non-existent shards
This commit adds handling on the master side for shard failure requests
for shards that do not exist at the time that they are processed on the
master node (whether it be from errant requests, duplicate requests, or
both the primary and replica notifying the master of a shard
failure). This change is made because such shard failure requests should
always be considered successful (the failed shard is not there anymore),
but could be marked as failed if batched with a shard failure request
that does in fact fail. This avoids the possibility of an unexpected
catastrophic failure while applying the failed shards from causing such
a request to also be marked as failed setting in motion additional
failures.

Closes #16089
2016-01-26 16:36:25 -05:00
Boaz Leskes 82ae74071e logging: cleanup some old TestLogging annotations and add a few debug level by default 2016-01-26 20:48:07 +01:00
Luca Cavanna 426becea44 Merge pull request #16230 from javanna/enhancement/migrate_node_settings
Move node.client, node.data, node.master, node.local and node.mode to new settings infra
2016-01-26 18:16:55 +01:00
Colin Goodheart-Smithe 641aaab896 Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java
#	core/src/main/java/org/elasticsearch/common/io/stream/StreamOutput.java
#	core/src/main/java/org/elasticsearch/search/SearchModule.java
2016-01-26 16:07:17 +00:00
Simon Willnauer daadf8e04f Convert processors to new settings infrastructure 2016-01-26 17:06:35 +01:00
Simon Willnauer 94aa9f3bfc Remove unsupported settings 2016-01-26 17:06:35 +01:00
Simon Willnauer 09d7e9127d Convert `cluster.routing.allocation.type` to new settings infrastructure 2016-01-26 17:06:30 +01:00
Simon Willnauer 429b372edb Validate tribe node settings on startup 2016-01-26 16:19:13 +01:00
Colin Goodheart-Smithe 11bafa18e1 Removes Aggregation Builders in place of AggregatorFactory implementations 2016-01-26 15:13:43 +00:00
Martijn van Groningen 28a9709d7f updated jdocs and removed redundant import 2016-01-26 16:13:24 +01:00
Christoph Büscher 97114af8ae Merge pull request #16014 from cbuescher/refactor/rescore-fromXContent
RescoreBuilder: Add parsing and creating of RescoreSearchContext

Adding the ability to parse from xContent to the rescore builder. Also making RescoreBuilder an abstract base class that encapsulates the window_size setting, with QueryRescoreBuilder as its only implementation at the moment.

Relates to #15559
2016-01-26 15:42:35 +01:00
javanna 9dfcfd5d42 move node.ingest up a few lines 2016-01-26 14:54:41 +01:00
Simon Willnauer cf358e426c Use Version#id to parse version from settings.
When a Version is passed to `Settings#put(String, Version)` it's id is used as
an integer which should also be used to deserialize it on the consumer end.
Today AssertinLocalTransport expects Version#toString() to be used which can lead
to subtile bugs in tests.
2016-01-26 14:53:06 +01:00
Christoph Büscher 664da3fa66 Remove RescoreBuilder interface, rename AbstractRescoreBuilder to RescoreBuilder 2016-01-26 14:41:14 +01:00
javanna 61630c2b27 migrate node.local and node.mode to new Setting infra 2016-01-26 14:40:46 +01:00
javanna 80b74a4885 migrate node.client, node.data and node.master to new Setting infra 2016-01-26 14:40:13 +01:00
Colin Goodheart-Smithe 3b35754f59 Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/test/java/org/elasticsearch/percolator/PercolateDocumentParserTests.java
2016-01-26 13:17:53 +00:00
Martijn van Groningen df0be87b18 Merge pull request #16049 from elastic/feature/ingest
Merge feature/ingest branch into master branch.

This adds the ingest feature to ES that allows to preprocess document before indexing on an ingest node.
By default a node is an ingest node. Documents are preprocessed via a pipeline. A pipeline consists
out of one or more processors Each processor makes one or more modifications to a document processed.
There are many types of processors available out-of-the-box that are designed to make a specific change to a document being processed. In a cluster many pipeline can be configured via dedicated pipeline APIs. An new option on the bulk
and index APIs allows to control what pipeline is picked for preprocessing. If no pipeline is specified then the ingest
feature is skipped and no preprocessing takes place.
2016-01-26 13:41:13 +01:00
Isabel Drost-Fromm 8eb59f302d Merge pull request #16153 from MaineC/deprecation/script-sort-builder
Remove deprecated parameters from ScriptSortBuilder
2016-01-26 11:38:46 +01:00
Isabel Drost-Fromm 80d79c9c11 Remove deprecated parameters
This is in preparation of refactoring.

Relates to #15178
2016-01-26 11:23:59 +01:00
Martijn van Groningen 8b02f214c4 percolator: The percolate api shouldn't add field mappings for unmapped fields inside the document being percolated to the mapping.
Closes #15751
2016-01-26 10:26:46 +01:00
javanna 36d98478bf Merge branch 'master' into feature/ingest 2016-01-25 18:01:09 +01:00
Christoph Büscher 1bc0f7a8d0 Replace RescoreBaseBuilder with AbstractRescoreBuilder
The current RescoreBaseBuilder only serves as a container
for a pair of the optional `window_size` parameter and
the actual rescorer. Instead of a wrapper object, this makes
it an abstract class that conrete implementations like
QueryRescoreBuilder can extend.
2016-01-25 17:02:40 +01:00
Daniel Mitterdorfer b676583ba5 Deprecate fuzzy query
With this commit we deprecate the widely misunderstood
fuzzy query but will still allow the fuzziness
parameter in match queries and suggesters.

Relates to #15760
2016-01-25 15:24:10 +01:00
javanna b99e9cd2b0 Use Setting class to register node.ingest setting
Boolean parsing is now strict. Also added isIngestNode methods to DiscoveryNode to align this setting with the existing node.data node.master and node.client. Removed NodeModule#isIngestEnabled methods that are not needed anymore.
2016-01-25 15:05:00 +01:00
Jason Tedor 4c1e93bd89 Reproducible randoms in SearchWhileCreatingIndexIT
This commit removes non-reproducible randomness from
SearchWhileCreatingIndexIT. The cause of the non-reproducible randomness
is the use of a random draws for the shard preference inside of a
non-deterministic while loop. Because the inner while loop executed a
non-deterministic number of times, the draws for the next iteration of
the outer loop would be impacted by this making the random draws
non-reproducible. The solution is to move the random draws outside of
the while loop (just make a single draw for the prefernce and increment
with a counter), and remove the outer loop iteration instead using an
annotation to get the desired repetitions.

Closes #16208
2016-01-25 08:30:24 -05:00
Colin Goodheart-Smithe d63b8a25f8 Merge branch 'master' into feature/aggs-refactoring 2016-01-25 10:42:59 +00:00
Colin Goodheart-Smithe cd8320b171 Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregator.java
#	core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregator.java
#	core/src/main/java/org/elasticsearch/search/SearchModule.java
2016-01-25 10:42:20 +00:00
Jason Tedor 2de4a7a666 Log shard ID in ShardStateAction
This commit amends the logging statement in two places in
ShardStateAction to log the full shard ID instead of just the numerical
shard ID (without the index name).
2016-01-24 09:54:53 -05:00
Ryan Ernst b349746bbe Fix repro line for tests to use language tag
See https://issues.apache.org/jira/browse/LUCENE-6978

Also fixed date histogram test to use its version constant as a string
setting.
2016-01-22 22:54:49 -08:00
Boaz Leskes 30bfde9a2d Another fix of check for required settings in FsRepository
This time with the right setting
2016-01-22 18:01:27 +01:00
Boaz Leskes dc0fb29ad9 Fix check for required settings in FsRepository 2016-01-22 17:51:17 +01:00
Boaz Leskes ec31feca93 Settings: migrate network service to the new infra
This commit migrates all the settings under network service to the new settings infra.

It also adds some chaining utils to make fall back settings slightly less verbose.

Breaking (but I think acceptable)  - network.tcp.no_delay and network.tcp.keep_alive used to accept the value `default` which make us not set them at all on netty. Our default was true so we weren't using this feature. I removed it and now we only accept a true boolean.
2016-01-22 16:59:07 +01:00
Tanguy Leroux ae5da3432c Migrate repository settings to the new settings API 2016-01-22 16:41:56 +01:00
javanna 38ea9c7d13 Date processor: simplify switch to identify the specified date format 2016-01-22 16:28:04 +01:00
markharwood d371ef35f4 Settings - change over to o.e.common.settings.Setting for http settings:
http.cors.allow-credentials
http.cors.enabled
http.detailed_errors.enabled
http.enabled
http.pipelining
http.cors.max-age
2016-01-22 15:13:11 +00:00
Simon Willnauer 9b3559f473 Remove `test.cluster.node.seed` and special case `tests.portsfile`
* `test.cluster.node.seed` was only used in one place where it wasn't adding value and was now replaced with a constant
 * `tests.portsfile` is now an official setting and has been renamed to `node.portsfile`

this commit also convert `search.default_keep_alive` and `search.keep_alive_interval` to the new settings infrastrucutre
2016-01-22 15:47:32 +01:00
Yannick Welsch 296b48b9d1 Move discovery.* settings to new setting infrastructure
Closes #16182
2016-01-22 15:35:00 +01:00
Simon Willnauer 4c7f3d40e2 Merge pull request #16183 from s1monw/convert_client_settings
Convert client.transport settings to new infra
2016-01-22 15:25:56 +01:00
Christoph Büscher 513f4e6c57 Add serialization and fromXContent to SmoothingModels
PhraseSuggestionBuilder uses three smoothing models internally.
In order to enable proper serialization / parsing from xContent
to the phrase suggester later, this change starts by making the
smoothing models writable, adding hashCode/equals and fromXContent.
2016-01-22 15:19:17 +01:00
Daniel Mitterdorfer 9a1fdb6987 Merge remote-tracking branch 'danielmitterdorfer/convert-path-settings' 2016-01-22 15:18:18 +01:00
Simon Willnauer 34b2673d42 Convert client.transport settings to new infra 2016-01-22 15:14:13 +01:00
Daniel Mitterdorfer e9bb3d31a3 Convert "path.*" and "pidfile" to new settings infra 2016-01-22 15:14:13 +01:00
Jim Ferenczi ad7fec87b0 Merge pull request #16177 from jimferenczi/convert_indices_settings
Convert "indices.*" settings to new infra.
2016-01-22 15:08:53 +01:00
Jim Ferenczi 37d02505aa Covers Simon's comments 2016-01-22 14:30:32 +01:00
Adrien Grand dc69d857bf Make disabled fielddata loading fail earlier.
Currently this fails when loading data from a segment, which means that it will
never fail on an empty index since it does not have segments.

Closes #16135
2016-01-22 14:12:55 +01:00
Jim Ferenczi 9c286b601e Convert "indices.*" settings to new infra. 2016-01-22 13:51:06 +01:00
Adrien Grand ac174aabb0 Migrate gateway settings to the new settings API. 2016-01-22 12:49:31 +01:00
javanna 17a36aecff [TEST] Simplify SplitProcessorTests#testSplitAppendable to not require compound and append processor 2016-01-22 12:03:36 +01:00
javanna e860f9ddda Split processor: specify known size at list creation 2016-01-22 12:02:40 +01:00
Simon Willnauer 1fb2f22f32 Convert to the new settings infra 2016-01-22 11:25:26 +01:00
Simon Willnauer cbd0a8b067 Add a testcase for #16142 that fails every time we use HandleTrackingFS
This commit also uses a try/finally with success pattern instead of catching
and excpetion. TranslogTests reproduce with `-Dtests.seed=DF6A38BAE739227A` every
time.

Closes #16142
2016-01-22 10:41:10 +01:00
Boaz Leskes fbca68a7c4 Translog: close channel on failures while converting a writer to a reader
TranslogWriter.closeIntoReader transfers the file ownership from a writer to a reader and closes the writer. If the transfer fails, we need to make sure we closed the underlying channel as the writer is already closes.

See: http://build-us-00.elastic.co/job/es_core_master_regression/4355

Relates to #16142
2016-01-22 10:15:40 +01:00
Simon Willnauer 9110f4f654 Merge pull request #16168 from s1monw/upgrade_on_any_version
Run Metadata upgrade tool on every version
2016-01-22 10:04:52 +01:00
Simon Willnauer dbff74308b fix typo 2016-01-22 09:48:41 +01:00
Simon Willnauer fcdb24bc9d Run Metadata upgrade tool on every version
Today we run the metadata upgrade only on the current major version
but this should run on every upgrade at least once to ensure we don't miss
an important check or upgrade.
2016-01-22 09:30:07 +01:00
Jim Ferenczi 08a0e40d75 Merge pull request #16155 from jimferenczi/fix/min_should_match
Do not apply minimum_should_match on auto generated boolean query if the coordination factor is disabled.
2016-01-22 09:29:33 +01:00
Simon Willnauer ff697c9ac2 Merge pull request #16156 from s1monw/check_for_invalid_settings_on_upgrade
Check for invalid index settings on metadata upgrade
2016-01-22 09:04:32 +01:00
Ryan Ernst df24019261 Merge pull request #16038 from rjernst/remove_site_plugin
Plugins: Remove site plugins
2016-01-21 12:32:22 -08:00
Tal Levy 8f35e459d1 Merge pull request #16157 from talevy/tag_sans_processor
[Ingest] rename processor_tag to tag
2016-01-21 11:20:42 -08:00
Jason Tedor 7de8d2881b Fix shard ID logging in DWSDIT#testAckedIndexing
This commit fixes a minor issue with the shard ID that is logged while
indexing in DiscoveryWithServiceDisruptionsIT#testAckedIndexing. The
issue is that the operation routing hash could lead to a negative
remainder modulo the number of primaries (if the hash itself is
negative) but should instead be the normalized positive remainder. This
issue only impacts the logging of the shard ID as the actual shard ID
used during indexing is computed elsewhere but would cause the shard ID
in the affected logging statement to not match shard IDs that are logged
elsewhere.
2016-01-21 13:55:53 -05:00
Clinton Gormley 24ac9506bd Reverted #16048 2016-01-21 18:07:38 +01:00
Tal Levy 3a6c2d008e rename processor_tag to tag 2016-01-21 09:05:42 -08:00
Tal Levy 2c4e13bf7c split string into ArrayList so it can be appended to
Fixes #16109.
2016-01-21 08:38:10 -08:00
Simon Willnauer 34b5d37c74 Check for invalid index settings on metadata upgrade
this change allows us to open existing IndexMetaData that contains invalid, removed settings
or settings with invalid values and instead of filling up the users disks with exceptions we _archive_
the settings with and `archive.` prefix. This allows us to warn the user via logs (once it's archived) as
well as via external tools like the upgrade validation tool since those archived settings will be preserved
even over restarts etc. It will prevent indices from failing during the allocaiton phase but instead will
print a prominent warning on index metadata recovery from disk.
2016-01-21 17:31:18 +01:00
Simon Willnauer 6589fbe86e Also remove upgrade from OldIndexBackwardsCompatibilityIT 2016-01-21 17:22:33 +01:00
Jim Ferenczi 8f063b0a07 Do not apply minimum_should_match on auto generated boolean query if the coordination factor is disabled.
Affects match, multi_match, query_string and simple_query_string queries.
Direct bool queries are not affected anymore (minimum_should_match is applied even if the coord factor is disabled).
2016-01-21 17:22:15 +01:00
Simon Willnauer 6ec13e62a7 Ensure defautls are also serialized across the network 2016-01-21 17:12:42 +01:00
Tal Levy c55f9bbd9b Merge pull request #16132 from talevy/holdmytag
[Ingest] add an AbstractProcessor to help hold the re-used processorTag variable
2016-01-21 07:30:29 -08:00
Simon Willnauer b1afde257b Drop multi data path upgrade tool
Since we require upgrades to 2.x we don't need this anymore on master.
2016-01-21 15:57:52 +01:00
Simon Willnauer e8b9880211 Clarify semantics when defaults are overwritten.
Default headers are now read-only fallbacks if the key is actually not in
the headers map. That way we never serialize them across the wire and also never
prevent them from being  overwritten.
2016-01-21 15:30:25 +01:00
Isabel Drost-Fromm 086633a5ca Make sort order enum writable.
Related to #15178
2016-01-21 14:44:26 +01:00
Simon Willnauer 142547271e Merge branch 'master' into trash_context_and_headers 2016-01-21 14:42:15 +01:00
Simon Willnauer ae48422072 Fix IngestMetadata parsing and add unittest 2016-01-21 14:19:26 +01:00
Isabel Drost-Fromm ca00808387 Merge pull request #16122 from MaineC/enhancement/15178-distance-unit-writable
Make DistanceUnit writable.
2016-01-21 14:03:39 +01:00
Isabel Drost-Fromm d2dac8427e Make distance unit writable.
Relates to #15178
2016-01-21 13:40:19 +01:00
Martijn van Groningen b61dc6d69c cleanup generics for the ingest action filters 2016-01-21 12:01:10 +01:00
Martijn van Groningen 44465c94f8 Merge remote-tracking branch 'es/master' into feature/ingest 2016-01-21 11:46:27 +01:00
Simon Willnauer eaad8924d8 Merge branch 'bring_back_node_throttle' 2016-01-21 11:31:29 +01:00
Simon Willnauer ebc9dcf0c7 Cleanup index settings updaters 2016-01-21 11:31:00 +01:00
Simon Willnauer d9422b5e89 Bring back node throttle type which was lost after index setting refactoring
This has caused some test failures lately especially on window (which is likely caused
by the rather bad performance of the windows test machines).
See one failure here:
 http://build-us-00.elastic.co/job/es_core_master_window-2008/2934/

This fix has now also a unittest that tests this issue separately.
2016-01-21 11:30:54 +01:00
Christoph Büscher 08334af189 Merge pull request #16126 from cbuescher/completionSuggestionParse-ParseFields
Suggest: Fix "analyzer" and "size" parsing and move to shared ParseFields in CompletionSuggestParser
2016-01-21 11:08:44 +01:00
Nik Everett 4a71898e09 Merge pull request #16107 from nik9000/unraw_actions
Cleanup the raw generics in ActionFilter
2016-01-20 21:54:49 -05:00
Tal Levy f1204cb1ab add an AbstractProcessor to help hold the re-used processorTag variable 2016-01-20 14:34:26 -08:00
Martijn van Groningen cdecf725f8 The nonNestedFilter should always be included if no types have been specified and
null can only be returned if there are no type or alias filter and the index has nested fields.
2016-01-20 23:16:42 +01:00
Martijn van Groningen 7914d0f940 Several MapperService cleanups:
* Cleaned up MapperService#searchFilter(...) and moved it DefaultSearchContext, since it that class was the only user. As part of the cleanup percolate query documents are no longer excluded from the search response.
* Removed resolveClosestNestedObjectMapper(...) method as it was no longer used.
* Removed DocumentTypeListener infrastructure. Before it was used by the percolator and parent/child, but these features no longer use it.

Closes #15924
2016-01-20 22:26:56 +01:00
Tal Levy 437fe6c056 make DeDotProcessor's constructor package-private 2016-01-20 12:12:40 -08:00
Jason Tedor bd1eefa5be Revert temporary compiler bug workaround
This reverts commit df5f1b1ee9.

Closes #16097
2016-01-20 14:37:12 -05:00
Jason Tedor 22318cb7e4 Remove import in IndicesClusterStateService.java
This commit removes an unused import from
o/e/i/c/IndicesClusterStateService.java.
2016-01-20 13:18:37 -05:00
Christoph Büscher 1550d0f013 Switch to using RescoreBuilder in SearchSourceBuilder 2016-01-20 19:09:02 +01:00
Christoph Büscher 428043700d RescoreBuilder: Add parsing and creating of RescoreSearchContext
Adding the ability to parse from xContent to the rescore builder.
Also making RescoreBuilder an interface and renaming the current
base builder that encapsulates the `window_size` setting the the
concrete rescorer implementation to RescoreBaseBuilder.
2016-01-20 18:45:54 +01:00
Martijn van Groningen b9dc5acf2c Cleanup ParentFieldMapper:
* Remove remaining 1.x bwc logic.
* Stop storing stored fields and indexed terms. The _parent field's only purpose is to support joins between parent and child type and only storing doc values is sufficient.
* In the mapping the parent field mapper is now known under '{parent}#{child}' key, because this is the field the parent/child join uses too.
* Added new sub fetch phase to lookup that _parent field from doc values field if that is required (before this was fetched from stored _parent field)
* Removed the ability to query directly on `_parent` in the query dsl. Instead the `{parent}#{child}` field should be used. Under the hood a doc values query is used instead of a term query, because only doc values fields are stored now.
* Added a new `parent_id` query to easily query child documents with a specific parent id without having to know what join field to use
* Also in aggregations `_parent` field can't be used any more and `{parent}#{child}` field name should be used instead to aggregate directly on the _parent join field.
2016-01-20 16:56:22 +01:00
Martijn van Groningen d2c608e1a8 fix test bug 2016-01-20 16:51:27 +01:00
Martijn van Groningen e4a142f792 added constructors for the required parameters and removed the body of all validate methods 2016-01-20 16:40:10 +01:00
Yannick Welsch 303b430480 Merge pull request #16096 from ywelsch/feature/prefer-previous-primary
Prefer nodes that previously held primary shard for primary shard allocation
2016-01-20 16:32:55 +01:00
Martijn van Groningen faf9ca2122 brought back the body of the validate() methods. This is still useful if no setter has been invoked. 2016-01-20 16:02:10 +01:00
Martijn van Groningen b0c7096e2f changed delete pipeline request to getters and setters in right format and validate the provided id in the setId(...) method 2016-01-20 16:00:44 +01:00
Martijn van Groningen f546b27ea0 removed the ClusterService constructor dependency from PipelineStore 2016-01-20 15:55:24 +01:00
Martijn van Groningen fd31d6afdf Let NodeService implement closable and let NodeService delegate to IngestService 2016-01-20 15:46:48 +01:00
Martijn van Groningen 977bbaba02 fixed various small comments 2016-01-20 15:44:32 +01:00
Martijn van Groningen 7aeb360932 use AbstractRunnable 2016-01-20 15:26:37 +01:00
Christoph Büscher 5ce14cc356 Fixing small issues and using ParseFields in CompletionSuggestParser 2016-01-20 15:20:38 +01:00
Martijn van Groningen 9fe408adbd use ActionListenerResponseHandler 2016-01-20 15:13:27 +01:00
Martijn van Groningen 136e0fe1af remove parsing logic with ObjectParser 2016-01-20 15:03:58 +01:00
Simon Willnauer f6db00fd33 push feedback from mr. regex optimizer 2016-01-20 14:19:29 +01:00
Martijn van Groningen 5eaaa95c61 address SimulatePipelineRequest comments 2016-01-20 14:16:41 +01:00
Martijn van Groningen 2645fc9145 renamed SimulateDocumentSimpleResult to SimulateDocumentBaseResult and added jdocs 2016-01-20 14:11:45 +01:00
Simon Willnauer 0941604919 Validate the settings key if it's simple chars separated by `.`
This adds additional safety to the settings since we don't have a full list of them
yet and it caught bugs already in tests.
2016-01-20 14:03:10 +01:00
Martijn van Groningen 8b520111d0 fix PutPipelineRequest comments 2016-01-20 14:00:55 +01:00
Martijn van Groningen f7024bc4dd maintain a list of ingest nodes in the cluster state instead of creating it on the spot 2016-01-20 13:55:26 +01:00
Martijn van Groningen c663aa0dec addressed IngestProxyActionFilter comments 2016-01-20 13:44:27 +01:00
Martijn van Groningen 8a7f3d9d6f addressed various comments 2016-01-20 13:35:15 +01:00
Simon Willnauer 054465287e Don't guard IndexShard#refresh calls by a check to isRefreshNeeded
While conceptually correct this call can be confusing since if a
realtime GET is exectued after refresh is called with realtime=true it might
fetch the wrong document out of the translog since the isRefreshNeeded guard
might return false once the new searcher is published but it will not
wait until the verision map is flushed and that can cause a slight race condition
if a subsequent call GETs a document that it expects to come from the index.

Ie. the `_size` mapper tests do this and expecte the GET call to return the document
from the index but it comes from the t-log due to this race.

This change only uses the guard in an async refresh that we schedule to prevent unnecessary
refresh calls but will allow API Refresh calls to have the somewhat less confusing semantics.

This was introduces lately only on unrelease major version branches.
2016-01-20 11:42:04 +01:00
Martijn van Groningen e383e96f58 replaced custom PipelineMissingException with ResourceNotFoundException 2016-01-20 11:40:17 +01:00
Robert Muir ebe3fd2825 Merge pull request #16114 from rmuir/lucene_1725675
Update lucene to r1725675
2016-01-20 05:04:01 -05:00
Yannick Welsch 1eb8d5bd6f Prefer nodes that previously held primary shard for primary shard allocation 2016-01-20 11:02:19 +01:00
Simon Willnauer 1e37e0f921 fix naming Tests -> IT since it's an integ test 2016-01-20 09:50:08 +01:00
Simon Willnauer 0ddbfb25a6 Fix JavaDoc comment 2016-01-20 09:46:36 +01:00
Simon Willnauer 5374bd8e34 Merge branch 'master' into trash_context_and_headers 2016-01-20 09:40:03 +01:00
Simon Willnauer f5b68cd0c0 Merge pull request #16101 from s1monw/client_wrapper_for_test_cluster
Add infrastructure to wrap/filter all clients exposed by the test clusters
2016-01-20 09:34:14 +01:00
Robert Muir 6e7e3a2274 Update lucene to r1725675
Adds DFI (divergence from independence) provider.
Fixes test bugs passing invalid values for BM25 parameters.
2016-01-20 03:32:51 -05:00
Nik Everett 9e3e024358 Cleanup the raw generics in ActionFilter
Mostly these were pretty easy to clean up by insisting that the request
and response stays consistent across the filter. There are a few places
where we have to make assumptions in tests but those are valid assumptions
for the test.
2016-01-19 21:53:47 -05:00
Martijn van Groningen e2e207687d Fixes due to changes in master branch. 2016-01-19 22:03:26 +01:00
Martijn van Groningen 602a0f183e Merge remote-tracking branch 'es/master' into feature/ingest 2016-01-19 22:01:38 +01:00
Simon Willnauer 9117a8d500 fix threadpool visibility to be consisten with others 2016-01-19 21:07:43 +01:00
Simon Willnauer 11cf717e44 apply feedback from @jaymode
This adds the ability to filter clients multiple times and allows to inherit the outer context if done so.
This also adds a method to access all tasks in the threadpool in an unwrapped fashion
2016-01-19 21:03:46 +01:00
Simon Willnauer 3d0cedbabb Merge branch 'master' into trash_context_and_headers 2016-01-19 20:47:43 +01:00
Christoph Büscher df5f1b1ee9 Fix compilation issue with final assignment in lambda on windows jdk
Relates to #16097
2016-01-19 20:25:46 +01:00
Simon Willnauer eb498282dd Add infrastructure to wrap/filter all clients exposed by the test clusters.
This commit allows an integ test to wrap all clients that are exposed by the
InternalTestCluster which is useful for request interception or to add general headers
to request or to intercept client to server call even if the client calls are done from within
the test framework.
2016-01-19 20:12:47 +01:00
Nik Everett da42838cff Add wait_for_completion to reindex
It defaults to false and when false it returns a task identifier. Right
now all you can do is get the task to see if it is still running. Once
the task finishes it vanishes and you can't get any information about it.
2016-01-19 14:01:36 -05:00
Nik Everett 0d6d77328d Merge branch 'master' into feature/reindex 2016-01-19 13:27:24 -05:00
Nik Everett e1e73d9914 Create default for ExecutableScript#unwrap
Tons of scripts just return the variable they are passed and that is the
most intuitive behavior so that may as well be the default implementation.
2016-01-19 13:17:11 -05:00
Simon Willnauer da699ceae2 Merge pull request #16095 from s1monw/use_updated_settings_for_transport_client
TransportClient should use updated setting for initialization of modules and service
2016-01-19 18:03:47 +01:00
Simon Willnauer efece285d3 TransportClient should use updated setting for initialization of modules and service
Today the TransportClient uses the given settings rather than the updated setting from the plugin
service to pass on to it's modules etc. It should use the updates settings instead.
2016-01-19 17:35:38 +01:00
Jason Tedor 98f9222fff Log master node when sending shard state action 2016-01-19 11:31:13 -05:00
Jim Ferenczi b9f1c7242c Add explanation about minimum should match and coordination factor 2016-01-19 16:04:09 +01:00
Simon Willnauer 2d4d1a943b Merge pull request #16091 from s1monw/check_node_level_settings
Validate known global settings on startup
2016-01-19 16:01:53 +01:00
Simon Willnauer bc5d6cdff5 Validate known global settings on startup
Today we already validate all index level setting on startup. For global
settings we are not fully there yet since not all settings are registered.
Yet we can already validate the ones that are know if their values are parseable/correct.
This is better than nothing and an improvement to what we had before. Over time there will
be more an dmore setting converted and we can finally flip the switch.
2016-01-19 15:25:19 +01:00
Jim Ferenczi 12df1e7a6f Merge pull request #16078 from jimferenczi/mss_synonym
Do not apply minimum-should-match on a boolean query if the coords are disabled
2016-01-19 15:07:32 +01:00
Jim Ferenczi 9b1daff9b5 Do not apply minimum-should-match on a boolean query if the coords are disabled.
Fixes #15858
2016-01-19 14:50:01 +01:00
Isabel Drost-Fromm e7aae1b79e Merge pull request #16085 from MaineC/bug-fix/random-fuzziness-date
Fix for MatchQueryBuilderTests.testToQuery random fuzziness generation caused test failure.

Relates to #13284
2016-01-19 13:26:44 +01:00
Jason Tedor 089a7a321c Merge pull request #16041 from jasontedor/shard-started-channel-failures
Add handling of channel failures when starting a shard
2016-01-19 07:05:45 -05:00
Jason Tedor b7c1847c41 Add logging statement on shard state request send
This commit restores a debug-level logging statement when sending shard
state requests to the master node.
2016-01-19 06:59:42 -05:00
Isabel Drost-Fromm 3adeac149d Fix random fuzziness generation.
For all query testing we offer the option to initialise them with random
fuzziness objects. So far there is a chance to generate an edit distance based
fuzziness for non-string fields. This is fixed by this change.

Fixes the following test failure:

http://build-us-00.elastic.co/job/es_core_master_small/6606/testReport/junit/org.elasticsearch.index.query/MatchQueryBuilderTests/testToQuery/
2016-01-19 12:45:02 +01:00
Simon Willnauer 5a64f08f04 Merge pull request #16054 from s1monw/new_index_settings
Cut over all index scope settings to the new setting infrastrucuture

This change moves all index.* settings over to the new infrastructure. This means in short that:

 - every setting that has an index scope must be registered up-front
 - index settings are validated on index creation, template creation, index settings update
 - node level settings starting with index.* are validated on node startup
 - settings that are private to ES like index.version.created can only be set by tests when they install a specific test plugin.
 - all index settings can be reset by passing null as their value on update
 - all index settings defaults can be listed via the settings APIs

Closes #12854
Closes #6732
Closes #16032
Closes #12790
2016-01-19 12:26:46 +01:00
Simon Willnauer bd37ba22e3 Merge branch 'master' into new_index_settings 2016-01-19 12:11:57 +01:00
Yannick Welsch d5b691b68e Extend reroute with an option to force assign stale primary shard copies
Closes #15708
2016-01-19 12:07:01 +01:00
Jason Tedor ac237b269c Add handling of channel failures when starting a shard
This commit adds handling of channel failures when starting a shard to
o.e.c.a.s.ShardStateAction. This means that shard started requests
that timeout or occur when there is no master or the master leaves
after the request is sent will now be retried from here. The listener
for a shard state request will now only be notified upon successful
completion of the shard state request, or when a catastrophic
non-channel failure occurs.

This commit also refactors the handling of shard failure requests so
that the two shard state actions of shard failure and shard started
now share the same channel-retry and notification logic.
2016-01-19 05:31:26 -05:00
Yannick Welsch 6ca79095df Allow changing nested fields limit for open indices 2016-01-19 10:55:11 +01:00
Simon Willnauer fa0e1488aa Merge branch 'master' into new_index_settings 2016-01-19 10:50:11 +01:00
Simon Willnauer f2311fd8b3 register index.mapping.nested_fields.limit 2016-01-19 10:49:49 +01:00
Jason Tedor 296ab3ec16 Fix transport exceptions for shard state actions
This commit fixes an issue in the handling of TransportExceptions in
ShardStateAction. There were two cases not being handled correctly.
 - when the local node is shutting down, handlers will be notified with
   a TransportException with a message starting "transport stopped"
 - when the remote node disconnects, handlers will be notified with a
   NodeDisconnectedException

In both of these cases, the cause of the exception will be null and this
was incorrectly being handled. The first case can passed to the listener
like any other critical non-channel failure, and the second case can be
handled by modifying the logic for detecting master channel exceptions.

There was a third case of NodeNotConnectedException that was not being
treated as a master channel exception but should be.

This commit adds an integration test that simulates the handling of a
shard failure request during a network partition. By isolating the
master from the cluster while a shard failed request is in flight, this
test simulates that we wait until a new master is elected and then retry
sending that shard failed request to the newly elected master.

This commit adds methods to CapturingTransport to separate local and
remote transport exceptions. The motivation for this change is that
local transport exceptions are delivered to listeners (usually, but not
always) wrapped in SendRequestTransportException while remote transport
exceptions are delivered to listeners wrapped in
RemoteTransportException. By making this distinction clear in the
CapturingTransport, this makes it less likely that tests will make
incorrect assumptions about the exceptions coming out of the transport
layer to listeners.

Closes #16057
2016-01-19 10:43:50 +01:00
Simon Willnauer 0066fc9d5f Merge branch 'master' into new_index_settings 2016-01-19 10:42:25 +01:00
Yannick Welsch fc4e8fd937 Merge pull request #15989 from ywelsch/feature/limit-nested-fields
Add per-index setting to limit number of nested fields
2016-01-19 10:33:09 +01:00
Simon Willnauer fbfa9f4925 Merge branch 'master' into new_index_settings 2016-01-19 10:13:48 +01:00
Yannick Welsch a1b8dd2de9 Add per-index setting to limit number of nested fields
Closes #14983
2016-01-19 10:03:48 +01:00
Isabel Drost-Fromm 3b27dce94f Merge pull request #16056 from MaineC/bug-fix/15860
Fix for MatchQueryBuilderTests.testToQuery test failure

Relates to #15860
2016-01-19 09:57:46 +01:00
Simon Willnauer b73c737608 apply feedback from @nik9000 2016-01-19 09:54:00 +01:00
Simon Willnauer 8e0390b09e Register index.version_created for several analysis plugin tests 2016-01-19 09:35:32 +01:00
Adrien Grand b2baf039fd Fix compilation. 2016-01-19 09:32:04 +01:00
Adrien Grand a90d2fa0b4 Merge pull request #16023 from jpountz/fix/implicit_self_conflict
Reuse metadata mappers for dynamic updates.
2016-01-19 09:28:04 +01:00
Adrien Grand d6cbd6f2f0 Merge pull request #16059 from jpountz/enhancement/mapping_merge_reason
Expose the reason why a mapping merge is issued.
2016-01-19 09:27:32 +01:00
Boaz Leskes a90b551e36 Translog: remove ChannelReference and simplify Views
Currently we use ref counting to manage the life cycles of a translog file. This was done to allow the creation of view and snapshots, making sure that the underlying files are available. This commit takes a simpler route based on the observation that a snapshot doesn't need to have it's own life cycle but rather can lift on the lifecycle of it's parent (translog or view). If code failes to adhere to this assumption it will get a channel already closed exception. As such, each file is now owned by a single owner and there is no need for reference counting. As part of the rewrite TranslogReader is renamed to  BaseTranslogReader and ImmutableTranslogReader to TranslogReader

Also, I took the opportunity to clean up legacy translog readers we don't need in master.

Closes #15898
2016-01-19 09:05:26 +01:00
Igor Motov d9a01225cb Transport actions should make started tasks available to their callers
Sometimes action callers might be interested in having an access to the task that they have just initiated. This changes allows callers to get access to the Task object of the actions that they just started if the action supports the task management.
2016-01-18 21:29:23 -05:00
Jason Tedor b6c9eaa24a Merge pull request #16068 from jasontedor/ip-field-mapper-term-queries
Single IPv4 addresses in IP field term queries

Closes #16058
2016-01-18 17:46:50 -05:00
Jason Tedor de992877b8 Single IPv4 addresses in IP field term queries
This commit modifies IpFieldMapper#termQuery to permit single IPv4
addresses for use in match and query_string queries.
2016-01-18 17:44:28 -05:00
Nik Everett 63090f5d4b Merge pull request #15761 from nik9000/more_remove_inject
Don't use guice for QueryParsers
2016-01-18 17:39:53 -05:00
Nik Everett 093600cd63 Cleanup ContextAndHeaderTransportTests
We have two similar tests with the same name, ContextAndHeaderTransportTests.
They shared lots of common code so I extracted much of it into
ActionRecordingPlugin, a plugin which records all action requests for later
inspection.

I also removed all the warnings from both tests. That made lang-mustache
compile cleanly without any custom -Xlint so I removed those. To remove
the warnings I had to add type parameters to ActionFilter which seemed
like a good idea anyway.
2016-01-18 16:14:58 -05:00
Jason Tedor e62221168e No load average if the values are meaningless
This commit modifies the presentation of load average to not be present
in the response if all of the values are meaningless.
2016-01-18 15:11:47 -05:00
Jason Tedor f5b72b0714 Load average on Windows is never available
Since load average is never available on Windows, this commit modifies
the handling of load average there to just always return null.
2016-01-18 15:11:47 -05:00
Jason Tedor d55952a90d Tigthen load average test assertions
This commit tightens the load average test assertions by separating out
OS X as a system where we can make tighter assertions about the load
average values.
2016-01-18 15:11:47 -05:00
Jason Tedor e5013d16f0 Fix test for load average on FreeBSD
This commit fixes the test for load averages on FreeBSD. On FreeBSD, it
is either the case that linprocfs is mounted at /compat/linux/proc in
which case the load averages are available, or this is not the case and
no load average are available. Previously, the test on FreeBSD was
falling back to the catch all case which asserts that the five-minute
and fifteen-minute load averages are not available.
2016-01-18 15:11:43 -05:00
Jason Tedor 2aa94a5133 Normalize unavailable load average
This commit normalizes the one-minute load average obtained from
OperatingSystemMXBean#getSystemLoadAverage to -1 when it is not
available. This is to reflect the Javadocs for this method saying "If
the load average is not available, a negative value is returned."
2016-01-18 15:09:08 -05:00
Nik Everett 15c43b64a1 Don't use guice for QueryParsers
1. Gets guice out of the business of building ScoreFunctionParsers and
QueryParsers.
2. Moves QueryParser registration to SearchModule
3. Moves NamedWriteableRegistry construction out of guice and into Node and
TransportClient.
4. Moves shape registration into SearchModule so now all named writeable
registration is done in the SearchModule.

This is breaking for plugin authors. Instead of declaring new QueryParser
like:

```java
public void onModule(IndicesModule module) {
  module.registerQueryParser(NewQueryParser.class);
}
```

you do it like:

```java
public void onModule(SearchModule module) {
  module.registerQueryParser(NewQueryParser::new);
}
```

The QueryParser's argument no longer come from @Inject, now they come from
the declaration in the plugin. The above example is for a no-arg QueryParser.
Most of the QueryParsers in Elasticsearch are no-arg.

ScoreFunctionParsers have a similar but slightly different change. This:

```java
public void onModule(SearchModule module) {
  module.registerFunctionScoreParser(NewFunctionScoreParser.class);
}
```

becomes

```java
public void onModule(SearchModule module) {
  module.registerFunctionScoreParser(new NewFunctionScoreParser());
}
```

Since all known ScoreFunctionParsers have no arg constructors its simpler to
just build them at registration time rather than specify a supplier that is
used to build them later.
2016-01-18 15:02:47 -05:00
Jason Tedor 3be12ed9fd Merge pull request #15932 from jasontedor/load-average-format
Modify load average format

Relates #15907
2016-01-18 11:59:19 -05:00
Jason Tedor df598e8129 Modify load average formats
This commit modifies the load_average in the node stats API response
to be an object containing the one-minute, five-minute and
fifteen-minute load averages as fields (if those values are
available). Additionally, this commit modifies the cat nodes API
response to format the one-minute, five-minute and fifteen-minute load
averages as null if any of the respective values are not available.
2016-01-18 11:41:34 -05:00
Adrien Grand 055953d6b3 Expose the reason why a mapping merge is issued.
This would be useful in order to only perform some validations in the case of
a mapping update and in cases when a mapping is restored eg. after a restart,
such as discussed in #15989.

This replaces the current `applyDefault` parameter which can be derived from
the mapping merge reason: the default mapping should be applied only in case of
a mapping update, if the mapping does not exist yet and if this is not the
default mapping.
2016-01-18 17:41:23 +01:00
Christoph Büscher fcf3bc213d Tests: Reduce number of random runs for shape builder tests 2016-01-18 16:27:30 +01:00
Nik Everett 491d776f65 Merge pull request #16047 from nik9000/unraw_3
Remove some raw warnings from settings
2016-01-18 10:00:44 -05:00
Nik Everett d1a2bee1e3 Merge pull request #16048 from nik9000/unraw_4
Remove lots of raw from aggregations
2016-01-18 09:57:00 -05:00
Nik Everett 01f37226ab Push an unchecked cast until its really safe 2016-01-18 09:55:56 -05:00
Nik Everett bfcffa2a00 Merge pull request #16027 from nik9000/shard_core_key_map_closed
Handle closed readers in ShardCoreKeyMap
2016-01-18 09:16:10 -05:00
Nik Everett 1e251bba2d Merge pull request #16046 from nik9000/unraw_2
Squash more raw type warnings
2016-01-18 09:15:21 -05:00
Isabel Drost-Fromm d531146b90 Fixes test failure with numeric range query. 2016-01-18 15:14:42 +01:00
Simon Willnauer c2e8ba8970 Register index.version_created on unittest that set it 2016-01-18 15:04:35 +01:00
Simon Willnauer 7c55241ca0 Merge branch 'master' into new_index_settings 2016-01-18 14:46:40 +01:00
Simon Willnauer a3a7b14efd [TEST] fix error message assertion 2016-01-18 14:45:46 +01:00
Simon Willnauer dce29d29c0 Normalize template index settings before validating 2016-01-18 14:39:21 +01:00
Simon Willnauer 3e6018fedb add back lcuene_default as a valid setting for our tests to work out of the box 2016-01-18 13:23:24 +01:00
Simon Willnauer b5c326023f also allow other lucene codecs to be loaded 2016-01-18 13:17:07 +01:00
Martijn van Groningen 7c8a1ecf37 test: added todo 2016-01-18 13:17:01 +01:00
Martijn van Groningen 62089539db s/processorId/processorTag 2016-01-18 13:11:46 +01:00
Martijn van Groningen c7d220330d added note to jdocs that this exception should never get serialzed 2016-01-18 13:09:10 +01:00
Simon Willnauer 5dc3e721e0 fix test 2016-01-18 13:03:19 +01:00
Simon Willnauer 04bbc5b83c also allow lucene_default as a valid codec 2016-01-18 13:02:28 +01:00
Simon Willnauer b7c0ac6ad6 Add test to ensure templates don't accept invalid index values 2016-01-18 13:00:10 +01:00
Simon Willnauer e52a873d1a Restrict index.codec to default and best_compression 2016-01-18 12:59:42 +01:00
Simon Willnauer 9562fb76bc expose default settings via rest API 2016-01-18 12:48:47 +01:00
Martijn van Groningen 328c375970 test: removed forgotten AwaitsFix annotations 2016-01-18 11:59:57 +01:00
Alexander Reelsen 2b0c036b99 Tests: Ensure termvector is not fetched from translog
Setting realTime to false in the get term vector request ensures,
that after a refresh the document is not fetched from the translog,
which seems to yield different in rare test runs.

The change likely triggering this was introduced in #15933
2016-01-18 10:18:43 +01:00
Simon Willnauer a61723b538 convert index.store.fs.fs_lock 2016-01-18 10:17:11 +01:00
Simon Willnauer 13e5547537 Add REST tests for reset index settings and for listing defaults. 2016-01-18 10:02:37 +01:00
Simon Willnauer 651819ca6c Add validation of index settings passed via cmd and elasticsearch.yaml
From this commit on we also validate all settings starting with `index.` that are
node-level settings configured in yaml files or via commandline arguments or system properties.
This check happens on node startup before the actual node is started.
2016-01-18 09:41:03 +01:00
Simon Willnauer ef9ef0c47a make get(Setting) fallback to node settings 2016-01-18 09:23:35 +01:00
Simon Willnauer cc25c4c8be don't validate query cache types - they can be customized 2016-01-18 09:23:35 +01:00
Simon Willnauer 7925e2ef84 convert IndexModule settings 2016-01-18 09:23:35 +01:00
Simon Willnauer 3567daa9c8 add ability to reset index settings to it's default 2016-01-18 09:23:35 +01:00
Simon Willnauer 79f4697f3e Register MockFSDirectoryService settings 2016-01-18 09:23:34 +01:00
Simon Willnauer dbe76fb59b Fix UpdateSettingsIT and IndicesOptionsIntegrationIT to register strict settings 2016-01-18 09:23:34 +01:00
Simon Willnauer 359475fb0d fix some more sneaky failures 2016-01-18 09:23:34 +01:00
Simon Willnauer a8eedd0457 fix all kinds of crazy test failures 2016-01-18 09:23:34 +01:00
Simon Willnauer cb0ea70b9d fix error message 2016-01-18 09:23:34 +01:00
Simon Willnauer 2eecb9c02d add tests for AutoExpandReplicas 2016-01-18 09:23:33 +01:00
Simon Willnauer 8a4fca2947 make all unittests pass 2016-01-18 09:23:33 +01:00
Simon Willnauer 0b870c9869 paths is now the empty space by default 2016-01-18 09:23:33 +01:00
Simon Willnauer 04045a072f First steps of integrating converted settings into the cluster/index settings infrastructure
The old infa has been removed in this commit such that nothing uses `DynamicSettings` anymore
and all index-scoped settings require to be registered before the node has fully started up.
2016-01-18 09:23:33 +01:00
Simon Willnauer 6fe6c25fad first cut at integrating new settings infra 2016-01-18 09:23:33 +01:00
Britta Weber 0b59b12801 convert reclaim_deletes_weight and remove superfluous methods 2016-01-18 09:23:33 +01:00
Britta Weber b161e8cdb5 convert segments_per_tier 2016-01-18 09:23:32 +01:00
Britta Weber 1f0ab58790 convert max_merged_segment 2016-01-18 09:23:32 +01:00
Simon Willnauer 14527ed2d5 use a valid default 2016-01-18 09:23:32 +01:00
Simon Willnauer eb7012101a convert all setting in IndexMetaData 2016-01-18 09:23:32 +01:00
Britta Weber 7e5e93c73a convert max_merge_at_once_explicit 2016-01-18 09:23:32 +01:00
Britta Weber 59d7adfb59 convert max_merge_at_once 2016-01-18 09:23:32 +01:00
Britta Weber 59725315a6 convert merge.policy.floor_segment 2016-01-18 09:23:32 +01:00
Britta Weber cf70761abf we assume from now on that settings are reset if we pass empty settings 2016-01-18 09:23:32 +01:00
Simon Willnauer abfef7aa73 convert index allocation filtering 2016-01-18 09:23:31 +01:00
Britta Weber f7785dceb8 convert expunge_deletes_allowed 2016-01-18 09:23:31 +01:00
Britta Weber 5b0b57c97a remove unused noCFSRatio 2016-01-18 09:23:31 +01:00
Britta Weber a9ff6bc405 convert compound_format 2016-01-18 09:23:31 +01:00
Simon Willnauer c702fbd29b convert all slow logs 2016-01-18 09:23:31 +01:00
Britta Weber c4a019d93d convert translog.flush_threshold_size 2016-01-18 09:23:31 +01:00
Simon Willnauer cdae4945a6 add unittest for indexing slow log settings 2016-01-18 09:23:31 +01:00
Simon Willnauer 3599585aa7 cut over indexing slow log 2016-01-18 09:23:30 +01:00
Simon Willnauer 69e95deb47 convert index.ttl.disable_purge 2016-01-18 09:23:30 +01:00
Simon Willnauer 2e1bc1ea44 cut over index.routing.rebalance.enable and index.routing.allocation.enable 2016-01-18 09:23:30 +01:00
Simon Willnauer 7db3a7fea9 register missing setting 2016-01-18 09:23:30 +01:00
Simon Willnauer 0bef73269a cut over index.unassigned.node_left.delayed_timeout 2016-01-18 09:23:30 +01:00
Britta Weber 8e2e749230 convert gc_deletes 2016-01-18 09:23:30 +01:00
Simon Willnauer cfffa48d91 converted index.routing.allocation.total_shards_per_node 2016-01-18 09:23:30 +01:00
Simon Willnauer 3902ea439d convert index.max_result_window 2016-01-18 09:23:29 +01:00
Britta Weber 3512bea105 convert refresh interval 2016-01-18 09:23:29 +01:00
Simon Willnauer 60be834902 convert index.warmer.enabled 2016-01-18 09:23:29 +01:00
Simon Willnauer b7b104a585 convert index.translog.durability 2016-01-18 09:23:29 +01:00
Simon Willnauer da0424c75f Convert index level setting to the new setting infrastrucutre
this is an initial commit of cutting over simple string key based settings
to a more contained scoped settings infrastructure.
2016-01-18 09:23:29 +01:00
Nik Everett 9e08a0d024 Remove lots of raw from aggregations
These are the simple to remove raw type warnings from aggregations and a few
other nearby bits of code.
2016-01-17 22:29:50 -05:00
Nik Everett b14371bd22 Remove some raw warnings from settings
Also sneaks in a couple of javadocs and one early return that I think makes
the method easier to read.
2016-01-17 21:43:47 -05:00
Nik Everett 57af014510 Zap another few raw types warnings
Mostly these come from QueryBuilder. Mostly these are fixed by just using <?>
instead of the raw type.
2016-01-17 21:28:39 -05:00
Nik Everett 742e1da857 Squash more raw type errors
Its a long string to pull
2016-01-17 17:07:32 -05:00
Jason Tedor 69b21feb3b Merge pull request #15748 from jasontedor/shard-failure-no-master-retry
Wait for new master when failing shard

Relates #14252
2016-01-17 10:50:58 -05:00
Jason Tedor 386d2ab86a More tightening of shard state action tests
This commit adds some additional assertions that test success is not
falsely indicated by adding assertions that success / failure methods
are not incorrectly invoked in failure / success scenarios.
2016-01-17 10:36:24 -05:00
Ryan Ernst 3b78267c71 Plugins: Remove site plugins
Site plugins used to be used for things like kibana and marvel, but
there is no longer a need since kibana (and marvel as a kibana plugin)
uses node.js. This change removes site plugins, as well as the flag for
jvm plugins. Now all plugins are jvm plugins.
2016-01-16 22:45:37 -08:00
Jason Tedor 3d329e3ba0 Add real clock test for age of PrioritizedRunnable
This commit adds a test for calculating the age of PrioritizedRunnable
that allows real clock time to elapse. The test ensures that at least
one millisecond has passed, and that the resolution of System#nanoTime
on the underlying system is actually able to detect this.

Relates #15995
2016-01-16 19:01:25 -05:00
Tal Levy 9f48df9736 Add on_failure support for verbose _simulate execution and introduce optional processor_tag to Processors 2016-01-15 14:56:20 -08:00
Jason Tedor cf3c0ed049 Sanity assertion that exception cause is not null
This commit adds a sanity assertion that the cause of a transport
exception when sending a shard failure is not null.
2016-01-15 16:52:04 -05:00
Jason Tedor b4538a5676 Avoid periodic object allocations in IndexService
This commit wraps a trace logging message in a trace logging level check
to prevent allocating an Object array (to hold the logging parameters)
and a String (from the interval) when trace logging is not enabled every
second (with the default index refresh interval) and every five seconds
(with the default translog sync interval) for every open index when
trace logging is not enabled.
2016-01-15 15:14:09 -05:00
Tal Levy 1754eece66 introduce DeDotProcessor
fixes #15944.
2016-01-15 11:35:18 -08:00
Jason Tedor a7185a1d31 Simplify equality test in IndexShard#sameException
This commit simplifies an equality test in IndexShard#sameException
where the messages for two exceptions are being compared. The previous
condition first tested logical equality if the left exception is not
null, and otherwise tested reference equality. There is a convenience
method since JDK 7 for testing equality in this way: Objects#equals.

Closes #16025
2016-01-15 14:19:47 -05:00
Nik Everett 3896457d84 Handle closed readers in ShardCoreKeyMap
Fixes an issue caused by trying to add a LeafReader for a closed index to
ShardCoreKeyMap. It add itself to the map half way before throwing
AlreadyClosedException, leaking some references and causesing Elasticsearch
to refuse to shut down cleanly when testing.
2016-01-15 14:06:16 -05:00
Nik Everett 645b053061 Merge branch 'master' into feature/reindex 2016-01-15 14:04:37 -05:00
Britta Weber abc8c02bed check that busy waiting does not time out and fix replica counter test 2016-01-15 18:46:18 +01:00
Konrad Beiske 68742e3754 Renamed parameter 2016-01-15 17:59:27 +01:00
Konrad Beiske c13ed81d5a Changes after review 2016-01-15 17:47:55 +01:00
Jason Tedor 7eefcbbeed Add retry loop in shard state action tests
This commit enhances the master channel exception test in
o.e.c.a.s.ShardStateActionTests to test that a retries loop as expected
when requests to the master repeatedly fail.
2016-01-15 11:26:32 -05:00
Adrien Grand 59742ee0a4 Reuse metadata mappers for dynamic updates.
When a metadata mapper is not specified in a mapping update, it should default
to the current metadata mapper instead of the general default in order for the
update to not conflict with the current mapping.

Closes #15997
2016-01-15 17:14:51 +01:00
Nik Everett 7745c64a62 Merge pull request #15894 from nik9000/fix_blended_terms_2
Fix blended terms take 2
2016-01-15 09:54:58 -05:00
Nik Everett 50098bfb2c Fix blended terms for non-strings take 2
It had some funky errors, like lenient:true not working and queries with
two integer fields blowing up if there was no analyzer defined on the
query. This throws a bunch more tests at it and rejiggers how non-strings
are handled so they don't wander off into scary QueryBuilder-land unless
they have a nice strong analyzer to protect them.
2016-01-15 09:53:31 -05:00
Konrad Beiske 06516f652f Add option to exclude based on paths in XContent 2016-01-15 15:52:08 +01:00
Jason Tedor fe39d11c55 Logging in shard state action
This commit adds a trace log on a cluster state update while waiting for
a new master, and changes the log level on cluster service close to the
warn level.
2016-01-15 09:45:39 -05:00
Jason Tedor efb142613f Tighten shard state action tests
This commit tightens the tests in o.e.c.a.s.ShardStateActionTests:
 - adds a simple test for a success condition that validates the shard
   failed request is correct and sent to the correct place
 - remove redundant assertions from the no master and master left tests
 - an assertion that success is not falsely indicated in the case of a
   unhandled error
2016-01-15 09:28:25 -05:00
javanna 050585e89f remove BiFunction<Environment, TemplateService, Processor.Factory> in favour of Function<TemplateService, Processor.Factory>
the environment is now available through NodeModule#getNode#getEnvironment and can be retrieved during onModule(NodeModule), no need for this indirection anymore using the BiFunction
2016-01-15 15:12:53 +01:00
javanna d2eda422cf expose node in NodeModule and Environment in Node 2016-01-15 14:25:43 +01:00
Jason Tedor aa28133865 Merge pull request #15995 from jasontedor/prioritized-runnable-age
Fix calculation of age of pending tasks

Closes #15988
2016-01-15 08:01:50 -05:00
Jason Tedor ba8ad9c2b7 Fix calculation of age of pending tasks
This commit addresses a time unit conversion bug in calculating the age
of a PrioritizedRunnable. The issue was an incorrect conversion from
nanoseconds to milliseconds as instead the conversion was to
microseconds. This leads to the timeInQueue metric for pending tasks to
be off by three orders of magnitude.
2016-01-15 07:58:50 -05:00
Martijn van Groningen f8bb06a664 renamed variables 2016-01-15 13:35:06 +01:00
Martijn van Groningen 21cc0b2316 Cleanup ingest initialization code.
* Folded IngestModule into NodeModule
* Renamed IngestBootstrapper to IngestService
* Let NodeService construct IngestService and removed the Guice annotations
* Let IngestService implement Closable
2016-01-15 13:35:06 +01:00
Adrien Grand 0806190d1a Merge pull request #15998 from jpountz/fix/filter_agg_creates_meights_once
Filter(s) aggregation should create weights only once.
2016-01-15 10:25:51 +01:00
javanna 9c06736dbd Merge branch 'master' into feature/ingest 2016-01-15 10:11:56 +01:00
Adrien Grand cc41e6e7fe Filter(s) aggregation should create weights only once.
We have a performance bug that if a filter aggregation is below a terms
aggregation that has a cardinality of 1000, we will call Query.createWeight
1000 times as well. However, Query.createWeight can be a costly operation.
For instance in the case of a TermQuery it will seek the term in every
segment. Instead, we should create the Weight once, and then get as many
iterators as we need from this Weight.

I found this problem while trying to diagnose a performance regression while
upgrading from 1.7 to 2.1[1]. While the problem was not introduced in 2.x, the
fact that 1.7 cached very aggressively had hidden this problem, since you don't
need to seek the term anymore on a cached TermFilter.

Doing things once for every aggregator is not easy with the current API but
I discussed this with Colin and Aggregator factories will need to get an init
method for different reasons, where we will be able to put these steps that
need to be performed only once, no matter haw many aggregators need to be
created.

[1] https://discuss.elastic.co/t/aggregations-in-2-1-0-much-slower-than-1-6-0/38056/26
2016-01-15 09:42:30 +01:00
Simon Willnauer e9e300c42e Add Javadocs for ThreadContext 2016-01-15 09:36:49 +01:00
Martijn van Groningen a05ea535ad percolator: Make sure that start time is serialized on the mpercolate shard requests
Closes #15908
2016-01-15 09:25:01 +01:00
Jason Tedor 7f78d52c72 Use capture and clear convenience method 2016-01-14 16:51:36 -05:00
Lee Hinman 03087cfc47 Skip capturing least/most FS info for an FS with no total
If an operating system reports -1 for the total bytes of a filesystem
path, we should ignore it when capturing the least and most available
statistics.

Relates to #15919

Squashed commit of the following:

commit 5d2258ffeff8a0d156295dcc754ab9b6cbb4b02e
Author: Lee Hinman <lee@writequit.org>
Date:   Thu Jan 14 14:14:27 2016 -0700

    Change test to test positive total with negative 'free' value

commit 927e61d4b39692fc147220a955b63b291ad80db5
Author: Lee Hinman <lee@writequit.org>
Date:   Thu Jan 14 13:09:28 2016 -0700

    Skip capturing least/most FS info for an FS with no total

    If an operating system reports -1 for the total bytes of a filesystem
    path, we should ignore it when capturing the least and most available
    statistics.

    Relates to #15919
2016-01-14 14:44:46 -07:00
Simon Willnauer 2008a5bdc9 apply review comments 2016-01-14 22:19:36 +01:00
Simon Willnauer 903d0ff96c Use trace for annoying schedule logs 2016-01-14 22:09:45 +01:00
Jason Tedor 8f67dcc348 Add Javadocs for exceptions that are handled by ShardStateAction 2016-01-14 15:07:17 -05:00
Jason Tedor 5a5d7881ed Remove dead field in o.e.c.a.s.ShardStateActionTests 2016-01-14 15:07:17 -05:00
Jason Tedor d55c5f6c4d Handle FailedToCommitClusterStateException in ShardStateAction
This commit adds Discovery.FailedToCommitClusterStateException to the
list of channel failures that ShardStateAction handles and retries.
2016-01-14 15:07:17 -05:00
Jason Tedor f17f9a5f36 Remove timeout mechanism from ShardStateAction
This commit removes the timeout retry mechanism from ShardStateAction
allowing it to instead be handled by the general master channel retry
mechanism. The idea is that if there is a network issue, the master will
miss a ping timeout causing the channel to be closed which will expose
itself via a NodeDisconnectedException. At this point, we can just wait
for a new master and retry, as with any other master channel exception.
2016-01-14 15:07:16 -05:00
Jason Tedor f49435c78b Centrally handle channel failures when failing a shard
This commit moves the handling of channel failures when failing a shard
to o.e.c.a.s.ShardStateAction. This means that shard failure requests
that timeout or occur when there is no master or the master leaves after
the request is sent will now be retried from here. The listener for a
shard failed request will now only be notified upon successful
completion of the shard failed request, or when a catastrophic
non-channel failure occurs.
2016-01-14 15:07:16 -05:00
Jason Tedor 58c2a3b687 Add simulation of master leaving in TransportReplicationActionTests
This commit adds a simulation of the master leaving after a shard
failure request has been sent. In this case, after a new cluster state
is published (simulating a new master having been elected), the request
to fail the shard should be retried.
2016-01-14 15:05:46 -05:00
Jason Tedor 703ff2b5ab Wait for new master when failing shard
This commit handles the situation when we are failing a shard and either
no master is known, or the known master left while failing the shard. We
handle this situation by waiting for a new master to be reelected, and
then sending the shard failed request to the new master.
2016-01-14 15:05:46 -05:00
javanna 57b88076f7 [TEST] remove thread pool tests that check whether the ingest tp was started
The ingest thread pool has been removed, no reason to test it ;)
2016-01-14 17:32:09 +01:00
Luca Cavanna 7ed4bbdf64 Merge pull request #15991 from javanna/enhancement/plugin_todos
move grok patterns loading out of GrokProcessorFactory
2016-01-14 17:25:30 +01:00
Martijn van Groningen 63ee2224f7 ingest: remove ingest threadpool and use index threadpool instead.
To main concern with the dedicated ingest TP is that there are already many TPs and in the case with beefy nodes we would many more threads. In the case ingest isn't used the all these threads are just idle.
2016-01-14 16:33:14 +01:00
Jason Tedor a954e4e8e5 Safely notify cluster state task executor of publish 2016-01-14 10:07:08 -05:00
Colin Goodheart-Smithe e6f9cbce8f Merge branch 'master' into feature/aggs-refactoring
# Conflicts:
#	core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java
#	core/src/main/java/org/elasticsearch/common/io/stream/StreamOutput.java
2016-01-14 15:00:26 +00:00
Colin Goodheart-Smithe 0e866dd4f4 Removes TopHitsBuilder in place of TopHitsAggregator.Factory 2016-01-14 14:56:52 +00:00
Colin Goodheart-Smithe 8c4f0ea705 Removes the simple metric builders in place of AggFactory implementations 2016-01-14 14:53:44 +00:00
javanna 1e68ad0887 add ingest-geoip to official plugins 2016-01-14 15:50:59 +01:00
Christoph Büscher 3d98756e64 Merge branch 'refactor/rescore-builder-equals-hash' 2016-01-14 15:40:34 +01:00
Christoph Büscher 76192024a8 Make RescoreBuilder and nested QueryRescorer Writable
Adding serialization capabilities to RescoreBuilder and make
all QueryRescorer implement NamedWritable, also requiring
all implementations of RescoreBuilder.Rescorer to implement
equals() and hashCode.

In addition, the current rescore mode enumeration is pulled out to a
separate class to make sharing of constants easier between
the query builders XContent rendering coder and the parser.
2016-01-14 15:26:18 +01:00
Luca Cavanna 1cb1607c29 Merge pull request #15954 from javanna/enhancement/get_alias_expand_closed
make get alias expand to open and closed indices by default
2016-01-14 14:24:40 +01:00
Simon Willnauer 4bef475985 [TEST] Add test to show how to parse an enum from a string in ObjectParser.java 2016-01-14 14:20:33 +01:00
Martijn van Groningen 4d88da5ad5 ingest: Use BiConsumer instead of Cunsumer to pass down the failed index request with throwable 2016-01-14 14:09:42 +01:00
javanna 07a82d0c09 make get alias expand to open and closed indices by default
This change affects get alias, get aliases as well as cat aliases. They all return closed indices too by default. get alias and get aliases also allow to return open indices only through the `expand_wildcards` option (set it to `open`).

Closes #14982
2016-01-14 10:40:31 +01:00
Simon Willnauer aaf7e55c5f Remove index.flush_on_close entirely
This undocumented setting was mainly used for testing and a safety net for
a new flushOnClose feature back in 1.x. We can now safely remove this setting.
The test usage now uses a mock plugin setting to achive the same.
2016-01-14 10:34:58 +01:00
Jason Tedor d5e20fb763 Merge pull request #15934 from jasontedor/freebsd-load-average
Add load averages to OS stats on FreeBSD

Closes #15917
2016-01-13 20:11:22 -05:00
Simon Willnauer 1ddfa42c2e Merge pull request #15966 from s1monw/randomize_mock_plugins
Randomize which MockPlugins are used for IT
2016-01-13 23:58:49 +01:00
Simon Willnauer 22834bce55 fix possible race in IndexServiceTests#testBaseAsyncTask and add mock plugin SearchWithRandomIOExceptionsIT 2016-01-13 23:39:25 +01:00
Martijn van Groningen a7730b05b2 Fix some todos 2016-01-13 23:35:41 +01:00
Simon Willnauer e849674f5c add required plugin to PrimaryAllocationIT 2016-01-13 23:11:35 +01:00
Martijn van Groningen f3883343cb Move the pipeline configuration from the dedicated index to the cluster state.
Closes #15842
2016-01-13 22:59:36 +01:00
Simon Willnauer 8c10616df8 Merge pull request #15964 from s1monw/flush_on_close_final
Remove updatability of `index.flush_on_close`
2016-01-13 22:55:26 +01:00
Jason Tedor 4b47c38922 Fix typo in comment in o/e/c/c/Cache.java 2016-01-13 15:01:59 -05:00
Simon Willnauer 24b0f1f025 Remove updateability of `index.flush_on_close`
`index.flush_on_close` is a test setting and doesn't need to be updateable.

Relates to #15955
2016-01-13 20:39:07 +01:00
Simon Willnauer b333133183 Merge pull request #15955 from s1monw/move_settings_to_index_level
Move all dynamic settings and their config classes to the index level
2016-01-13 20:35:33 +01:00