Commit Graph

3967 Commits

Author SHA1 Message Date
javanna 918da65d35 [TEST] Added blacklist to be able to skip specific REST tests
The blacklist can be provided through -Dtests.rest.blacklist and supports a comma separated list of globs
e.g. -Dtests.rest.blacklist=get/10_basic/*,index/*/*

Also added some missing docs and made it clearer that the suite/test descriptions effectively contains their (relative) path (api/yaml_file/test section)

Closes #5881
2014-04-22 09:52:48 +02:00
Andrew Selden 3121ad20dd Return valid empty JSON response when no recovery information
This is a fix to send back to the client a valid empty JSON response in
the case when we have no recovery information.

Closes #5743
2014-04-21 16:52:25 -07:00
Andrew Selden 1f7f72135a Bug fix for hung clients on cluster without benchmark nodes
This is a fix for a bug whereby a cluster that has no nodes started with
-Des.node.bench=true will cause clients to hang if they attempt to
submit a benchmark.

Also adds REST tests to validate fix

Closes #5754
2014-04-21 15:08:50 -07:00
Shay Banon 2f8fc98012 [TEST] make fetch time in millis test more resilient
beef up the fetch work, and increase teh number of iterations (since we count in nanos, but reports in rounded millis)
2014-04-22 00:00:08 +02:00
Shay Banon aa86a51070 Use loopback when localhost is not resolved
we use the "local host" address in sevearl places in our networking layer, if local host is not resolved for some reason, still continue and operate but using the loopback interface
2014-04-21 20:55:03 +02:00
Simon Willnauer f26e9e784f Searcher might not be closed if store hande can't be obtained
Today we first get a reference to the IndexSearcher in #acquireSearcher
and then futher down we try to run Store#incRef() which might throw an
exception if the store is already closed. There is a small window
that allows this to happen during InternalEngine#close() when we try
to acquire the searcher at the same time and the engine is the last
resource that holds a reference to the store.

This commit only affects unreleased code since the Store's ref counting
has not yet been released.
2014-04-21 20:45:38 +02:00
Boaz Leskes baea1827d1 [Tests] SimpleRecoveryLocalGatewayTests.testSingleNodeNoFlush could fail if shards were not started
The test starts a single node, indexes into, restarts the node and checks that no data was lost. It only indexed into 2 shards and didn't wait for green meaning that the node could be restarted with non-started primary. In that case the node will not re-assign the primary as it was not started. This commit makes sure that we either wait for primaries to start or index into all shards which has the same net effect.

Also extending some logging in InternalIndexShard.
2014-04-21 11:44:16 +02:00
Boaz Leskes 2580099cf2 [Test] Let SuggestStatsTests.testSimpleStats do more work
The test verifies that stats are measure by checking timeInMillis>0. On fast machines the suggestions are done in < 1 millis time. The tests now index documents (to power suggestions) and does multiple suggestions per iterations to slow things down.
2014-04-19 17:46:52 +02:00
Boaz Leskes 12bbe28649 Fail replica shards locally upon failures
When a replication operation (index/delete/update) fails to be executed properly, we fail the replica and allow master to allocate a new copy of it. At the moment, the node hosting the primary shard is responsible of notifying the master of a failed replica. However, if the replica shard is initializing (`POST_RECOVERY` state), we have a racing condition between the failed shard message and moving the shard into the `STARTED` state. If the latter happen first, master will fail to resolve the fail shard message.

This commit builds on #5800 and fails the engine of the replica shard if a replication operation fails. This protects us against the above as the shard will reject the `STARTED` command from master. It also makes us more resilient to other racing conditions in this area.

Closes #5847
2014-04-18 18:56:08 +02:00
Simon Willnauer b6515e2979 [TEST] Make InternalEngineMergeTests more stable 2014-04-18 18:20:44 +02:00
javanna 442dda2ac8 [TEST] _id is not indexed by default, sort on score,_uid in MultiMatchQueryTests 2014-04-18 15:09:00 +02:00
Martijn van Groningen a808fe9d46 Moved the updateMappingOnMaster logic into a single place.
Closes #5798
2014-04-18 19:27:13 +07:00
javanna d6a676724a [TEST] added sort by "_id" when score is the same to MultiMatchQueryTests#testEquivalence
A merge (and refresh) might rarely happen in the background between the two queries whose output is compared. It might then happen that two docs with same scores get returned by the two queries in a different order due to different lucene document id (which has changed in the meantime). To fix this we need to order by id when the score is the same, so that we can safely compare the output of the two queries (multimatch and dismax).
2014-04-18 12:15:44 +02:00
Martijn van Groningen a73286bcc4 [TEST] Use startNodesAsync in unicast discovery tests. 2014-04-17 11:51:11 +07:00
Simon Willnauer 0948260ada [TEST] make testTimeoutSendExceptionWithDelayedResponse more reliable on slow systems 2014-04-16 22:59:31 +02:00
Simon Willnauer 1755ae7470 Added version constants for 1.1.2 and 1.0.4 2014-04-16 17:21:19 +02:00
Boaz Leskes 0887e68d4b [Test] InternalEngineTests: increased gc deletes interval & turn it off randomly 2014-04-16 15:59:56 +02:00
Simon Willnauer 26adb37f09 [TEST] Ignore bogus system properties.
LuceneTestCase might reset some solr properties that cause
our tests to fail if the run before in the same JVM We just ignore
solr properties.
2014-04-16 15:19:17 +02:00
Simon Willnauer 3530c8be7e [TEST] catch exceptions if TTL already expired when indexing
TTLPercolatorTests indexes docs with small TTLs which can trigger
AlreadyExpiredException exception. This is expected while rare and
we should just catch them.
2014-04-16 15:10:28 +02:00
Simon Willnauer be14968c44 Ensure close is called under lock in the case of an engine failure
Until today we did close the engine without aqcuireing the write lock
since most calls were still holding a read lock. This commit removes
the code that holds on to the readlock when failing the engine which
means we can simply call #close()
2014-04-16 14:50:40 +02:00
Boaz Leskes 099b9c6b06 add debug logs if failed shards can not be resolved. 2014-04-16 14:45:54 +02:00
Martijn van Groningen 840d1b4b8e [TEST] Reduce the amount of docs being indexed. 2014-04-16 15:49:24 +07:00
Martijn van Groningen 98deb5537f Better deal with invalid scroll ids.
Closes #5738
2014-04-16 14:13:29 +07:00
Simon Willnauer 8df5d4c37e [TEST] Fix PercolatorTests#testSimple2
This test requires a mapping since otherwise if there is no mapping
added the percolator query might not be parsed as a query on a numeric
field since the query might arrive on a node before the dynamic mapping
reached that node.

This commit also moves the `indexService.readAllowed()` call up before
the number of percolation queries is check to make sure we fail if reads
are not allowed - there might be a query in-flight which means we need
to check another node rather than return an empty result.
2014-04-15 23:01:35 +02:00
Lee Hinman 65e72a5be5 [TEST] Wait for green, and refresh after indexing in percolator test 2014-04-15 11:19:41 -06:00
Simon Willnauer c5c87c4a48 [TEST] Don't delete data dirs after test - only delete their content.
Closes #5815
2014-04-15 17:03:31 +02:00
Simon Willnauer 320a206352 Switch back to ConcurrentMergeScheduler
Load tests showed that SerialMS has problems to keep up with
the merges under high load. We should switch back to CMS
until we have a better story to balance merge
threads / efforts across shards on a single node.

Closes #5817
2014-04-15 16:42:23 +02:00
Adrien Grand 9920084ba2 [TEST] Wait for shards to be allocated before running testUpdateMappingDynamicallyWhilePercolating.
If the percolate request is executed soon enough, all shards fail and the
mapping is not actually updated.
2014-04-15 16:20:16 +02:00
Martijn van Groningen 202b1e2306 Update clusterstate if mapping service has local changes
If the during percolating a new field was introduced
in the local mapping service, then those changes should
be updated in cluster state of the master as well.

Closes #5776
2014-04-15 13:41:01 +02:00
Simon Willnauer 7c6d745523 Cleanup FileSystemUtils#mkdirs(File)
This methods had some workarounds for bugs that seem to be fixed
in Java 7 [1]. There seem to be other problems on shared file-systems
which are not really supported by lucene anyway or rather not
recommeded. Yet the current solution that interrupts a static thread
reference is too dangrous given all the usage of NIO across
elasticsearch.

[1] http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4742723
2014-04-15 13:22:51 +02:00
Simon Willnauer 8dd5dd409e Remove FileSystemUtils#maxOpenFiles
This method basically forcefully creates as many files as possible
to find out the process limit in a brute-force manner. The number of
possible probles with this approach would exceed the number of lines
left on this commit message.

This commit uses a JMX based alternative to print the process limit.
2014-04-15 13:22:51 +02:00
Shay Banon bc5bdbc5de Remove jsr166y now that we on Java 7, cleanup jsr166e to classes we use 2014-04-15 13:17:28 +02:00
Simon Willnauer 8bede7024f Use TransportBulkAction for internal request from IndicesTTLService
This prevents executing bulks internal autocreate indices logic
and ensures that this internal request never creates an index
automaticall.

This fixes a bug where the TTL purger thread ran after the actual
index it was purging was already closed / deleted and that re-created
that index.

Closes #5766
2014-04-15 12:40:25 +02:00
Igor Motov 3d23a71fa7 Fix snapshot status with empty repository
The snapshot status command with empty repository should return current status of currently running snapshots in all repositories.

Fixes #5790
2014-04-14 19:02:41 -04:00
Igor Motov 2ed8c632be Separate persistent and global metadata serialization settings 2014-04-14 16:25:33 -04:00
Simon Willnauer 0564c883be Remove unused FileSystemUtils#copyFile 2014-04-14 21:48:27 +02:00
Simon Willnauer a215dd3ae8 Prevent fsync from creating 0-byte files
This is related to LUCENE-5570 where fsync creates a 0-byte file
if the file does not exists. This commit adds the patched lucene
version using Java 7 APIs as well as a note to replace this method
with the upcomeing IOUtils#fsync in Lucene 4.8

This commit cleans up FsImmutableBlobContainer#writeBlob to make
use of Java7 Auto-Closing features and ensures that the directory
the blob was written to is fsynced as well if possible.
2014-04-14 21:48:23 +02:00
Adrien Grand e458d4fd93 Improved SearchContext.addReleasable.
For resources that have their life time effectively defined by the search
context they are attached to, it is convenient to use the search context to
schedule the release of such resources.

This commit changes aggregations to use this mechanism and also introduces
a `Lifetime` object that can be used to define how long the object should
live:
 - COLLECTION: if the object only needs to live during collection time and is
   what SearchContext.addReleasable would have chosen before this change
   (used for p/c queries),
 - SEARCH_PHASE for resources that only need to live during the current search
   phase (DFS, QUERY or FETCH),
 - SEARCH_CONTEXT for resources that need to live until the context is
   destroyed.

Aggregators are currently registed with SEARCH_CONTEXT. The reason is that when
using the DFS_QUERY_THEN_FETCH search type, they are allocated during the DFS
phase but only used during the QUERY phase. However we should fix it in order
to only allocate them during the QUERY phase and use SEARCH_PHASE as a life
time.

Close #5703
2014-04-14 17:42:41 +02:00
Adrien Grand e589301806 Make Releasable extend AutoCloseable.
Java7's AutoCloseable allows to manage resources more nicely using
try-with-resources statements. Since the semantics of our Releasable interface
are very close to a Closeable, let's switch to it.

Close #5689
2014-04-14 17:21:42 +02:00
Adrien Grand e688f445ad [TEST] Use indexRandom in ShardSizeTests. 2014-04-14 12:31:34 +02:00
Simon Willnauer 1ce56ff969 Revert "Don't lookup version for auto generated id and create"
This reverts commit dc73498454.
2014-04-14 12:15:02 +02:00
Shay Banon dc73498454 Don't lookup version for auto generated id and create
When a create document is executed, and its an auto generated id (based on UUID), we know that the document will not exists in the index, so there is no need to try and lookup the version from the index.
For many cases, like logging, where ids are auto generated, this can improve the indexing performance, specifically for lightweight documents where analysis is not a big part of the execution.
2014-04-14 10:06:53 +02:00
Simon Willnauer ad143e16cf [TEST] Fix ClusterStatsTests#testValuesSmokeScreen to wait for yellow to get reliable FS stats. 2014-04-12 23:02:31 +02:00
Simon Willnauer ec3c635696 [TEST] use a real upperbound for the check on the time spend during suggestions 2014-04-12 21:54:46 +02:00
Shay Banon e9c0dd9ae4 [Test] should be abstract 2014-04-12 16:14:58 +02:00
Simon Willnauer efb749936b [TEST] Improve performance of MockBigArray MockPageRecycler 2014-04-11 23:02:59 +02:00
Simon Willnauer 5d611a9098 Ensure pending merges are updated on segment flushes
Due to the default of `async_merge` to `true` we never run
the merge policy on a segment flush which prevented the
pending merges from being updated and that caused actual
pending merges not to contribute to the merge decision.

This commit also removes the `index.async.merge` setting is actually
misleading since we take care of merges not being excecuted on the
indexing threads  on a different level (the merge scheduler) since 1.1.

This commit also adds an additional check when to run a refresh
since soely relying on the dirty flag might leave merges un-refreshed
which can cause search slowdowns and higher memory consumption.

Closes #5779
2014-04-11 23:02:59 +02:00
Boaz Leskes e0fbd5df52 PR #5706 introduced a bug in the sparse array-backed field data
When we load sparse single valued data, we automatically assign a missing value to represent a document who has none. We try to find a value that will increase the number of bits needed to represent the data. If that missing value happen to be 0, we do no properly intialize the value array.

This commit solved this problem but also cleans up the code even more to make spotting such issues easier in the future.
2014-04-11 21:34:36 +02:00
Boaz Leskes 63d1fa45ab Added awaitFix for SimpleNestedTests.testSortNestedWithNestedFilter
While investigating failures
2014-04-11 18:12:35 +02:00
Boaz Leskes f549472fea Fixed- PackedArrayIndexFieldData.chooseStorageFormat compared to Long.MAX_VALUE instead of Long.MIN_VALUE
Also made the LongFieldDataTests.SINGLE_VALUED_SPARSE_RANDOM & LongFieldDataTests.MULTI_VALUED_SPARSE_RANDOM more sparse
2014-04-11 16:40:47 +02:00
Boaz Leskes 1d1ca3befc Added a AppendingDeltaPackedLongBuffer-based storage format to single value field data
The AppendingDeltaPackedLongBuffer uses delta compression in paged fashion. For data which is roughly monotonic this results in reduced memory signature.

By default we use the storage format expected to use the least memory. You can force a choice using a new field data setting `memory_storage_hint` which can be set to `ORDINALS`, `PACKED` or `PAGED`

Closes #5706
2014-04-11 15:50:34 +02:00
Chris Earle e8ea9d7585 Strengthening pseudo random number generator and adding tests to verify its behavior.
Closes #5454 and #5578
2014-04-11 14:01:40 +02:00
Martijn van Groningen 45a1b44759 Each search request should use a new InternalSearchResponse instance even in case when all shards return no hits.
The InternalSearchResponse may get modified afterwards, so a new instance required at all times.
2014-04-11 17:44:21 +07:00
Simon Willnauer 862611b792 [TEST] Prevent TTLPurger from recreating deleted index
Related to #5766
2014-04-11 09:03:28 +02:00
Martijn van Groningen b400129597 The clear scroll apis now optionally accepts a scroll_id in it body.
Closes #5726
2014-04-11 10:39:59 +07:00
Martijn van Groningen c4a49c2488 Fixed an where a nested `nested` aggregation falls outside of its parent `nested` aggregation bounds.
The nested `nested` aggs now gets the proper parent docs that define its bounds correctly.

Closes #5728
2014-04-11 10:16:17 +07:00
Martijn van Groningen 7bf3ffe73c Added test with AwaitsFix annotation that simulates a split brain. 2014-04-10 20:13:59 +07:00
Shay Banon 7a26b49298 Use startNodesAsync in more tests 2014-04-10 14:59:11 +02:00
Adrien Grand 53cbaa0af1 [TESTS] Add more assertSearchResponse to aggregations tests. 2014-04-10 11:34:41 +02:00
Simon Willnauer 206799662c [TEST] Allow higher ClusterHealthTimeout on tests if configuration is slow 2014-04-10 10:49:32 +02:00
Simon Willnauer 34a3e8af35 Add better error reporting to RestApiParser if assertions are tripped 2014-04-09 23:16:17 +02:00
Andrew Selden e2c8ff92ba Benchmark API
Add an API endpoint at /_bench for submitting, listing, and aborting
search benchmarks. This API can be used for timing search requests,
subject to various user-defined settings.

Benchmark results provide summary and detailed statistics on such
values as min, max, and mean time. Values are reported per-node so that
it is easy to spot outliers. Slow requests are also reported.

Long running benchmarks can be viewed with a GET request, or aborted
with a POST request.

Benchmark results are optionally stored in an index for subsequent
analysis.

Closes #5407
2014-04-09 13:06:55 -07:00
Lee Hinman 9aa1cb408e Fix format string for DiskThresholdDecider reroute explanation 2014-04-09 08:49:49 -06:00
Costin Leau 960d353dbd Remove plugin isolation feature for a future version
relates #5261
2014-04-09 17:28:11 +03:00
Simon Willnauer cd0c0de088 [TEST] RecoveryWhileunderLoadTests sometimes need higher timeouts
In some cases when we have a lot of docs with lots of shards
recovery takes longer than 1m causing the tests to fail before all
shards are recovered. This commit raises the timeout in this test to
5m max while it's rarely needed.

This commit also adds an assertion to ElasticsearchAssertions that
ensures that the cluster health requests are not hitting a timeout.
2014-04-09 11:37:02 +02:00
Boaz Leskes 6d966837d1 [Test] recoverWhileRelocating: Increase timeout while waiting for shards to replicate. 2014-04-08 20:53:31 +02:00
Simon Willnauer adc9a250ab Fix P/C assertions for rewrite reader
Inner queries must be rewritten as soon as a weight is pulled ie. must
be non-null.

Closes #5731
2014-04-08 17:47:31 +02:00
Simon Willnauer 5b6fd6de42 [TEST] Fix testRandomDirectoryIOExceptions to wait for green on reopen & add more assertions 2014-04-08 17:46:56 +02:00
Simon Willnauer a98b3fa1ff Revert "[TEST] Log where locks are created from if they are still open on close()"
This reverts commit 7eb8b0d0c0.
2014-04-08 16:18:15 +02:00
Simon Willnauer 7eb8b0d0c0 [TEST] Log where locks are created from if they are still open on close() 2014-04-08 15:14:08 +02:00
Simon Willnauer de13d707ed [TEST] Wait for LANGUID events to be processed before pulling stats 2014-04-08 12:41:13 +02:00
Boaz Leskes e8467f0978 Failed shards could be re-assigned to the same nodes if multiple replicas failed at once
After a shard fails on a node we assign a new replica on another node. This is important in order to avoid failing again due to node specific problems. In the rare case where two different replicas of the same shard failed in a short time span, we may fail to do so and assign one of them back to the node it's currently on. This happens if both shard failed events are processed within the same batch on the master.

Closes #5725
2014-04-08 12:10:45 +02:00
Simon Willnauer c58b823e9f [TEST] Add more randomization to bulk tests 2014-04-08 11:38:08 +02:00
Simon Willnauer fd8a6ac382 [TEST] make BulkTest more robust if test infra is slow 2014-04-08 11:11:56 +02:00
Shay Banon a1d0eee6bf [TEST] return the correct transport instance in mock transport 2014-04-07 22:34:56 +02:00
Simon Willnauer 49c74e0885 Rename successulOps to successfulOps in TransportSearchTypeAction 2014-04-07 22:15:09 +02:00
Simon Willnauer befa833385 Make sure successful operations are correct if second phase is fast
In TransportSearchTypeAction we  need to increment successful ops
first before we increment and compare the exit condition otherwise if we
are fast we could concurrently update totalOps but then preempt one
of the threads which can cause the successor to read a wrong value from
successfulOps if second phase is very fast ie. searchType == count etc.
This can cause wrong success stats in the search response.
2014-04-07 22:15:09 +02:00
Simon Willnauer f2181d5cbf [TEST] Be more verbose if ClusterStatsTests fails 2014-04-07 22:14:10 +02:00
Andrew Selden 033e46f8af Rename readPrimitive*Array()/writePrimitive*Array() methods
Make method names shorter and easier to read.

Closes #5711
2014-04-07 11:15:21 -07:00
Matt Weber e3187d5b9a Update LongHash to work like BytesRefHash.
- rename "key" to "get"
- update and add more tests

Closes #5693
2014-04-07 19:59:08 +02:00
Andrew Selden fb338ef753 Make writePrimitive*() and readPrimitive*() methods public.
These utility methods are useful for client code to read/write arrays of
primitive types.
2014-04-07 10:38:57 -07:00
Simon Willnauer f1a8aadb63 [TEST] null out static resources in base test classes 2014-04-07 18:17:25 +02:00
javanna 1ec4f8f04b [TEST] Replaced RestTestSuiteRunner with parametrized test that uses RandomizedRunner directly
ElasticsearchRestTests extends now ElasticsearchIntegrationTest and makes use of our ordinary test infrastructure, in particular all randomized aspects now come for free instead of having to maintain a separate (custom) tests runner

We previously parsed only the tests that needed to be run given the version of the cluster the tests are running against. This doesn't happen anymore as it didn't buy much and it would be harder to support as the tests get now parsed before the test cluster gets started. Thus all the tests are now parsed regardless of their skip sections, afterwards the ones that don't need to be run will be skipped through assume directives.

Fixed REST tests that rely on a specific number of shards as this change introduces also random number of shards and replicas (through randomIndexTemplate)

Closes #5654
2014-04-07 17:08:05 +02:00
Shay Banon 705c7e2469 Recycled bytes in http + rest layer refactoring phase 2
Refactor the rest layer handlers to simplify common code paths (like handling) failures, and introduce optional (enabled for netty) rest channel bytes recycling
2014-04-07 15:29:04 +02:00
uboness c9b0b04f55 Aggregation cleanup
- consolidated value source parsing under a single parser that is reused in all the value source aggs parsers
- consolidated include/exclude parsing under a single parser
- cleaned up value format handling, to have consistent behaviour across all values source aggs
2014-04-07 14:34:17 +02:00
Miltos Allamanis dc15dee323 Renamed ClusterBlocks variable named "block" to "blocks".
"blocks" has been used 9 times for variable names of type
ClusterBlocks but block has been used only this case. It
seems to be a typo.
2014-04-07 12:26:06 +02:00
Miltos Allamanis 40a1ac82ef Renamed XContentParser.Token named "t" to "token".
The name "token" was declared 191 times for XContentParser.Token
objects, while "t" was used only 6 times.
2014-04-07 12:26:06 +02:00
Shay Banon 37c07ef765 disable args tests that cause page/array leak
related to #5703
2014-04-07 11:25:18 +02:00
Shay Banon d64d0d6a97 Remove clear on mock page/array
since we use a shared cluster, calling clear on the mock array / page recycler can cause removing a valid on going reference, and then when its released, the release will fail because it can't be found.
There is no real reason to call clear, checking if pages/arrays have been released takes the snapshot behavior here into account.
This change also makes sure we don't use the mock classes in places where we don't really release.

Note, with this change DoubleTermsTests fails, since it causes failures when creating aggs in the pre process phase, causing obtained arrays not to be released. This needs to be fixed before pulling this change in.
2014-04-07 11:25:18 +02:00
Kevin Wang ecab74fe6c add lucene language model similarities (Dirichlet & JelinekMercer) 2014-04-07 10:48:03 +02:00
Adrien Grand 9df655adb2 Remove AtomicFieldData.isValuesOrdered.
This method is not used anymore.

Close #5688
2014-04-07 10:30:10 +02:00
Kevin Wang 866c520abb Add doc value for binary field.
Close #5669
2014-04-07 10:18:55 +02:00
Martijn van Groningen ade1d0ef57 Added global ordinals (unique incremental numbering for terms) to fielddata.
Added a terms aggregation implementations that work on global ordinals, which is also the default.

Closes #5672
2014-04-07 11:06:41 +07:00
Boaz Leskes 7b9df39800 [Test] Added better control over the number of documents indexed by BackgroundIndexer
Used the new controls to reduce indexing activity in RelocationTests and RecoveryWhileUnderLoadTests

Closes #5696
2014-04-06 20:49:27 +02:00
Shay Banon d26a956231 releasable bytes output + use in transport / translog
create a new releasable bytes output, that can be recycled, and use it in netty and the translog, 2 areas where the recycling will help nicely.
Note, opted for statically typed enforced releasble bytes output, to make sure people take the extra care to control when the bytes reference are released.
 Also, the mock page/array classes were fixed to not take into account potential recycling going during teardown, for example, on a shared cluster ping requests still happen, so recycling happen actively during teardown.
closes #5691
2014-04-06 20:23:21 +02:00
Simon Willnauer a5aafbb04c [TEST] Prevent RelocationTests from going crazy when relocations take time 2014-04-05 22:36:16 +02:00
Simon Willnauer 124d370b5f [TEST] cleanup secondary cluster properly in Tribe tests. 2014-04-05 22:18:38 +02:00
Lee Hinman 211f740100 Add `getAsRatio` to Settings class, allow DiskThresholdDecider to take percentages
Adds new RatioValue class that parses ratios between 0-100% expressed in
either floating-point (0.13) or percentage (51.12%) notation.

Closes #5690
2014-04-04 13:19:35 -06:00
Lee Hinman 3248359660 log full exception in InternalClusterInfoService unless it's a ClusterBlockException 2014-04-04 13:06:01 -06:00
Daniel Winterstein 08be94b455 Adding javadoc to UpdateRequestBuilder for a couple of details it took me a while to find. 2014-04-04 17:56:08 +02:00
Timo Rantalaiho 3ae02b0b60 Show stacktrace of startup exception
Whether or not the stacktrace is displayed is controlled by bootstrap
log level setting, so that bootstrap: DEBUG displays the stack trace on
output, like it does on log

Closes #5102
2014-04-04 17:15:41 +02:00
Simon Willnauer 4d6eb369a3 [TEST] Wait for nodes to join before asserting on cluster stats 2014-04-04 14:06:09 +02:00
Boaz Leskes 940954bfd1 [Test] added trace logging to refresh action to note which cluster version was used
Increase logging level for SearchWithRandomExceptionsTests.testRandomExceptions & MinDocCountTests to use the above and log cluster states on changes.
2014-04-04 13:17:28 +02:00
Kevin Wang f582212c68 `geo_point` doesn't allow null values
After upgrading to 1.1.0, sending null values to geo points produces the following error:

```
MapperParsingException[failed to parse]; nested: ElasticsearchParseException[geo_point expected];
```

Closes #5680.
Closes #5681.
2014-04-04 10:53:10 +02:00
Adrien Grand 8a09ec0e06 [TEST] Harden GeoShapeIntegrationTests. 2014-04-04 09:41:07 +02:00
Simon Willnauer df9346dc67 [TEST] build index up-front to prevent relocations 2014-04-03 19:31:22 +02:00
Simon Willnauer cd552e7413 Take stream position into account when calculating remaining length
Currently `PagedBytesReferenceStreamInput#read(byte[],int,int)` ignores
the current pos and that causes to read past EOF

Closes #5667
2014-04-03 17:44:41 +02:00
Adrien Grand 8f324d50b2 [TEST] Reduce number of documents/terms in aggregations' RandomTests.
This test initially had three purposes:
 - duels between equivalent aggregations on significant amounts of data,
 - make sure that array growth works (when the number of buckets grows larger
   than the initial number o buckets),
 - make sure that page recycling works correctly.

Because of the last point, it needed large numbers of docs/terms since page
recycling only kicks in on arrays of more than 16KB. However, since then, we
added a MockPageCacheRecycler to track allocation/release of BigArrays and make
sure that all arrays get released, so we can now lower these numbers of docs/
terms to just make sure that array growth is triggered.
2014-04-03 16:58:44 +02:00
Simon Willnauer 1fc664cc28 [TEST] Fix [Children|Parent]ConstantScoreQueryTests with nightly=true
Those tests use RandomIW which can flush after each document taking forever
to index the 20k docs it was indexing. This commit makes sure the IW is
sane and the number of docs is not too crazy.
2014-04-03 16:25:15 +02:00
Adrien Grand c78bb4472a [TEST] Make sure refresh is called by `indexRandom`, even if the list of documents to index is empty. 2014-04-03 15:57:54 +02:00
Martijn van Groningen 6f0904c7f1 sizeInBytes can be 0 2014-04-03 20:48:50 +07:00
Simon Willnauer 697432390d [TEST] Make BulkTests#testBulkProcessorFlush more robust 2014-04-03 13:32:41 +02:00
Simon Willnauer 7bc5ab45bc Cleanup IndicesFieldDataCache and IndexFieldDataCache
This commit adds several asserts and removes possible `null` values
from the `FieldDataCache` implementation.

Closes #5664
2014-04-03 12:50:51 +02:00
Martijn van Groningen f389c666c1 Moved the decision to load p/c fielddata eagerly to a better place.
Closes #5569
2014-04-03 14:45:07 +07:00
Alexander Reelsen f0ae43bbea Made template endpoint compatible with search endpoint
Before this the from/size parameters did not work.
Also updated the rest api spec definition file with all the query_string
parameters.

Fixes #5550
2014-04-03 00:01:30 +02:00
Alexander Reelsen e547e113e1 Geo context suggester: Require precision in mapping
The default precision was way too exact and could lead people to
think that geo context suggestions are not working. This patch now
requires you to set the precision in the mapping, as elasticsearch itself
can never tell exactly, what the required precision for the users
suggestions are.

Closes #5621
2014-04-02 23:51:14 +02:00
kul dc19e06e27 Add `flush` method for BulkProcessor class
There is no explicit method `flush/execute` in `BulkProcessor` class. This can be useful in certain scenarios.
Currently it requires to close and create a new BulkProcessor if one wants an immediate flush.

Closes #5575.
Closes #5570.
2014-04-02 19:16:29 +02:00
Britta Weber 0b449d3040 Document es.node.mode and add possible options to error message 2014-04-02 18:32:03 +02:00
Simon Willnauer e189b3e37b [TEST] Use NoMergePolicy rather than NoMergeScheduler in FreqTermsEnumTests 2014-04-02 14:58:45 +02:00
Adrien Grand 4ff3e1926b Remove ScriptDocValues.EMPTY.
Instead the default implementation is used, but on top of empty
(Bytes|Long|Double|GeoPoint)Values. This makes sure there is no
inconsistency between documents depending on whether other documents in the
segment have values or not.

Close #5646
2014-04-02 14:28:42 +02:00
Britta Weber ac5701968b Fix mapping creation on bulk request
When a bulk request triggers an index creation a mapping might not be
created. The reason is that when indexing documents in a bulk,
an indexing operation might fail due to a shard not yet being
started. The mapping service, however, might already
have the mapping but the mapping update is never issued to the master,
even on subsequent indexing of documents.

Instead, the mapping must be propagated to master even if the
indexing fails due to a shard not being started.

closes #5623
2014-04-02 13:53:44 +02:00
Shay Banon 63290a910e Freq Terms Enum
A frequency caching terms enum, that also allows to be configured with an optional filter. To be used by both significant terms and phrase suggester.
This change extracts the frequency caching into the same code, and allow in the future to add a filter to control/customize the background frequencies
Closes #5597
2014-04-02 11:16:00 +01:00
Boaz Leskes 285fa16f62 [Tests] Reduce the number of threads used by the BackgroundIndexer by default
It sometimes overloads the nodes.
2014-04-02 11:02:38 +02:00
Martijn van Groningen d57ef1e0d6 Removed incorrect comment 2014-04-02 12:14:35 +07:00
Martijn van Groningen b7451533c8 Added an indices level field data cache listener that always gets invoked and updates indices statistics and services about field data loading and unloading.
Moved the circuit breaker memory reducing logic to the IndicesFieldDataCacheListener, so it always reduces the memory used when field data gets unloaded,
this fixes a issue where the circuit breaker didn't get reduced when segments where no shardId could be resolved get cleared up.

Also made sure that exceptions in the percolator service are bubbled up properly.

Closes #5588
2014-04-02 11:55:45 +07:00
Simon Willnauer 42b20d601f Upgrade to Lucene 4.7.1
* Removed XTermsFilter fixed in LUCENE-5502
 * Switched back to automaton queries that caused failures due to LUCENE-5532
 * Fixed Highlight test that has different results due to LUCENE-5538
2014-04-01 23:50:55 +02:00
Simon Willnauer c88d32150f [TEST] use length-norm as the tie-breaker in BlendedTermQueryTest 2014-04-01 20:36:43 +02:00
Alexander Reelsen 8b8cd26a59 Geo: Allow to parse lat/lon as strings and coerce them
In order to be more failsafe parsing GeoPoints can support
lat/lon as strings and coerce them. Added support and test for this.
2014-04-01 19:09:33 +02:00
javanna f6bbc894cf [TEST] fixed typo in ReproduceInfoPrinter (s/nighly/nightly) 2014-04-01 18:43:14 +02:00
javanna 6ef45a9ae3 [TEST] Print out the `tests.cluster` sys prop if available to be able to reproduce failures when using the external cluster
Relates to #5630
2014-04-01 18:40:43 +02:00
Shay Banon be33c99835 [TEST] Add ability to start nodes in async mode in TestCluster
this will help speed up when starting multiple nodes in a test
closes #5644
2014-04-01 18:01:47 +02:00
javanna 806c4e87fb [TEST] Removed last occurences of cluster_seed, no longer used
Relates to #5233
2014-04-01 17:57:57 +02:00
Simon Willnauer 9c3b6a50a4 [TEST] Add ThreadLeaks protection to ElasticsearchPostingsFormatTest since we keep running clusters around in the JVM 2014-04-01 17:27:58 +02:00
Simon Willnauer 1f4de9cfb5 Enrich exception message if searcher can not be aquired
This commit also moves the log message after the ensureOpen() call
to only log an error if it's really an erro condition.
2014-04-01 17:13:23 +02:00
Simon Willnauer 2a5ffaafcb Throw EngineClosedException if engine is closed
Currently we throw misleading exception in acquireSearcher
if we try to acquire while we are failing the engine. We should
throw an EngineClosedException instead.

Relates to #5633
2014-04-01 17:00:42 +02:00
Simon Willnauer 257eddd8f0 [TEST] Expect all shards to fail if full refresh failed 2014-04-01 17:00:35 +02:00
Simon Willnauer 4da66c4f95 ignore index if it's not in the cluster state and it's in the drop indices set
Closes #5643
2014-04-01 16:02:43 +02:00
Simon Willnauer 98aecee531 [TEST] use assertAcked when creating indices 2014-04-01 16:02:30 +02:00
Robert Muir 24005b4011 add test for ElasticSearchPostingsFormat 2014-04-01 08:50:22 -04:00
Simon Willnauer 268f2c3b12 [TEST] Fix BulkTests#testThatInvalidIndexNamesShouldNotBreakCompleteBulkRequest - randomBoolean() doesn't always return true 2014-04-01 14:38:35 +02:00
Shay Banon c83c72b165 Fail the engine/shard when refresh failed
When refresh failed, it would fail due to a serious issue in the shard (mainly corrupted index). Fail the engine in that cause, which will cause the shard to fail. The reason why its not only on CorruptedIndex failed is that any type of failure seems to be relevant here to fail the shard
closes #5633
2014-04-01 14:32:20 +02:00
Simon Willnauer 71de2bc414 [BUILD] Allow to set tests memory via the commandline 2014-04-01 14:12:52 +02:00
Boaz Leskes 83a013320c Moved BackgroundIndexer to a top level class. Moved waitNumDocs to ElasticsearchIntegrationTestBase.
Update RelocationTests to use the above and unified testPrimaryRelocationWhileIndexing & testReplicaRelocationWhileIndexingRandom into a single randomized test.
2014-04-01 14:12:52 +02:00
Adrien Grand a6a12f97a2 [Test] allow tests to reuse a singel index across tests
This commit speeds up aggregations tests dramatically since they all
rely on the same index structure. Here we can safe a large amout of time
to not recreate the index for each small test.
2014-04-01 14:12:45 +02:00
Boaz Leskes 5bf8b79587 Add a BackgroundIndexer class to RecoveryWhileUnderLoadTests and use it.
Also change the document distribution a bit between the tests
2014-04-01 12:03:57 +02:00
Simon Willnauer e621458a39 [Test] Speedup UpdateTests#testConcurrentUpdateWithRetryOnConflict 2014-04-01 12:03:57 +02:00
Simon Willnauer 6898984307 [Test] Speeup FieldData tests and remove unnecessary @Repeat annotations 2014-04-01 12:03:57 +02:00
Simon Willnauer 6c3ec9e719 [Test] Run intensive suggest tests only if nightly=true 2014-04-01 12:03:57 +02:00
Simon Willnauer e3317f2c6b [Test] Speedup RecoveryWhileUnderLoadTests to run with less documents unless tests.nightly=true 2014-04-01 12:03:57 +02:00
Simon Willnauer e60ca8d8d7 [Test] Speed up RandomAllocationDeciderTests 2014-04-01 12:03:57 +02:00