https://github.com/elastic/elasticsearch

sort by:
Revision Author Date Message Commit Date
3adb13b Count through the primary in list of strings test A previous attempt to address a race condition in this test set wait for active shards to all. However, there might not be any replicas if the test is only running with one node so we end up waiting forever. Instead, to address the intial race condition, we just count through the primary. 22 March 2017, 15:01:36 UTC
35da8d0 Wait for all shards in list of strings test This test executes a bulk indexing operation with two documents. If this test is running against multiple nodes, there are no guarantees that all shards are green before we execute a search operation which might hit a replica shard. This commit creates the index in advance, and waits for all shards to be active before proceeding with the indexing request. 22 March 2017, 13:37:14 UTC
5bfaa49 [API] change wait_for_completion defaults according to docs (#23672) 22 March 2017, 11:54:06 UTC
b939562 [DOCS] Update the docs about the fact that global ordinals for _parent field are loaded eagerly instead of lazily by default. Relates to #8053 22 March 2017, 09:40:40 UTC
e60dd59 Docs: Add note about updating plugins requiring removal and reinstallation (#23597) closes #20321 21 March 2017, 19:00:15 UTC
7aedb2a [TEST] Propertly cleans up failing restore test The SharedClusterSnapshotRestoreIT#testDataFileCorruptionDuringRestore would fail sporadically because it tried to simulate restoring a corrupted index. The test would wait until the restore is finished (and marked as failed) before exiting. However, in the background, the cluster still continues to retry allocation of the failed shards, despite the restore operation being marked as completed, which in turn generates cluster states to process. The end of every ESIntegTestCase verifies that none of the nodes have any pending cluster states to process. Hence, this check sometimes fails on this particular test. This commit solves the issue by ensuring the index is deleted before exiting the test. 21 March 2017, 18:18:01 UTC
5490c7a Fix typo in allocation explain API docs This commit addresses a simple typo in the application explain API docs. Relates #23669 21 March 2017, 12:39:12 UTC
5b48357 Docs: fix a typo in transport client's put-mapping.asciidoc (#23607) It was talking about the wrong type. 20 March 2017, 19:05:02 UTC
0b23118 Switch include_in_all in multifield to warning (#23656) This reverts #21971 which should only have been applied in master to preserve backwards compatibility. Instead of throwing an error when you specify `include_in_all` inside a multifield we instead return a deprecation warning. `include_in_all` in a multifield still doesn't do anything. But at least people who use it erroneously won't break. Closes #23654 20 March 2017, 18:43:56 UTC
ae09e08 Comment and blank line cleanups (#23647) 20 March 2017, 13:37:10 UTC
b647242 docs: guidelines for students and teachers (#23648) Short summary: contributing code you wrote for a class is fine, just don't make the contribution process part of a class. 20 March 2017, 13:30:25 UTC
510e474 Fix MapperService StackOverflowError (#23605) MapperService#parentTypes is rewrapped in an UnmodifiableSet in MapperService#internalMerge every time the cluster state is updated. After thousands of updates the collection is wrapped so deeply that calling a method on it generates a StackOverflowError. Closes #23604 20 March 2017, 11:03:01 UTC
468813e Fix checkstyle line-length violations This commit addresses some checkstyle line-length violations that were introduced after a method was renamed to a longer name. 19 March 2017, 00:46:03 UTC
e64ddfc Avoid overflow when computing total FS stats When adding filesystem stats from individual filesystems, free and available can overflow. This commit guards against this by adjusting these situations to Long.MAX_VALUE. Relates #23641 19 March 2017, 00:26:43 UTC
e9e8e96 Handle long overflow when adding paths' totals From #23093, we fixed the issue where a filesystem can be so large that it overflows and returns a negative number. However, there is another issue when adding a path as a sub-path to another `FsInfo.Path` object, when adding the totals the values can still overflow. This adds the same safety to return `Long.MAX_VALUE` instead of the negative number, as well as a test exercising the logic. 19 March 2017, 00:26:26 UTC
d1150d9 Fix total disk bytes returning negative value (#23093) * Fix total disk bytes returning negative value This adds a workaround for JDK-8162520 - https://bugs.openjdk.java.net/browse/JDK-8162520 Some filesystems can be so large that they return a negative value for their free/used/available disk bytes due to being larger than `Long.MAX_VALUE`. This adds protection for our `FsProbe` implementation and adds a test that it does the right thing. 19 March 2017, 00:26:20 UTC
879bf83 Rename method that gives random non-negative longs This commit renames a method that produces random non-negative longs but the name only indicated that it produced random positive longs. 19 March 2017, 00:25:34 UTC
4c55b94 Docs: Corrected path to elasticsearch-plugin (#23622) 17 March 2017, 14:57:12 UTC
aab8b80 Fix third-party audit task for Gradle 3.4 (#23612) In Gradle 3.4, the buildSrc plugin seems to be packaged into a jar before it is accessed by the rest of the build and the signatures file for the third-party audit task cannot be accessed as getClass().getResource('/forbidden/third-party-audit.txt') then points to a file entry in a JAR, which cannot be loaded directly as a File object. This commit changes the third-party audit task to pass the content of the signatures file as a String instead. 17 March 2017, 09:11:38 UTC
ac4115f Unmark reindex as experimental The reindex API is mature now, and we will work to maintain backwards compatibility in accordance with our backwards compatibility policy. This commit unmarks the reindex API as experimental. Relates #23621 17 March 2017, 02:06:39 UTC
d0ec84b Docs: Specify that byte units use powers of 1024 (#23574) In SI units, "kilobyte" or "kB" would mean 1000 bytes, whereas "KiB" is used for 1024. Add a note in `api-conventions.asciidoc` to clarify the meaning in Elasticsearch. 16 March 2017, 16:40:48 UTC
474d674 Remove Settings.settingsBuilder (#23575) In this repository, `Settings.builder` is used everywhere although it does exactly same as `Settings.settingsBuilder`. With the reference of the commit https://github.com/elastic/elasticsearch/commit/42526ac28e07da0055faafca1de6f8c5ec96cd85 , I think mistakenly this `Settings.settingsBuilder` remains in. Backport of #23575 in 5.3 branch 16 March 2017, 15:23:08 UTC
43152c2 Fix example in documentation for Painless using _source. (#21322) 16 March 2017, 00:42:14 UTC
fb993bf Mapping: Fix NPE with scaled floats stats when field is not indexed (#23528) This fixes an NPE in finding scaled float stats. The type of min/max methods on the wrapped long stats returns a boxed type, but in the case this is null, the unbox done for the FieldStats.Double ctor primitive types will cause the NPE. These methods would have null for min/max when the field exists, but does not actually have points values. fixes #23487 15 March 2017, 22:44:19 UTC
41542d1 Fix typo in breaking changes docs for DAEE This commit fixes a typo in the breaking changes docs for the replacement for DocumentAlreadyExistsException; this exception type was superseded by VersionConflictEngineException, not VersionConflictException. Relates #23582 14 March 2017, 17:11:03 UTC
466d2cd Tests: Check that GetResponse.toString() outputs json xcontent 13 March 2017, 17:11:19 UTC
d3b3382 Docs: Fix indentation in has-child-query.asciidoc (#23565) 13 March 2017, 15:26:51 UTC
2abe7a3 Docs: Fix indentation in has-parent-query.asciidoc 13 March 2017, 15:02:24 UTC
9f35e1a Honor max concurrent searches in multi-search A previous change to the multi-search request execution to avoid stack overflows regressed on limiting the number of concurrent search requests from a batched multi-search request. In particular, the replacement of the tail-recursive call with a loop could asynchronously fire off all of the remaining search requests in the batch while max concurrent search requests are already executing. This commit attempts to address this issue by taking a more careful approach to the initial problem of recurisve calls. The cause of the initial problem was due to possibility of individual requests completing on the same thread as invoked the search action execution. This can happen, for example, in cases when an individual request does not resolve to any shards. To address this problem, when an individual request completes we check if it completed on the same thread as fired off the request. In this case, we loop and otherwise safely recurse. Sadly, there was a unit test to check that the maximum number of concurrent search requests was not exceeded, but that test was broken while modifying the test to reproduce a case that led to the possibility of stack overflow. As such, we randomize whether or not search actions execute on the same thread as the thread that invoked the action. Relates #23538 12 March 2017, 08:46:47 UTC
190a008 Fall back to non-atomic move when removing plugins When plugins are installed on a union filesystem (for example, inside a Docker container), removing them can fail because we attempt an atomic move which will not work if the plugin is not installed in the top layer. This commit modifies removing a plugin to fall back to a non-atomic move in cases when the underlying filesystem does not support atomic moves. Relates #23548 12 March 2017, 03:51:50 UTC
7525742 Avoid stack overflow in multi-search Today when handling a multi-search request, we asynchornously execute as many search requests as the minimum of the number of search requests in the multi-search request and the maximum number of concurrent requests. When these search requests return, we poll more search requests from a queue of search requests from the original multi-search request. The implementation of this was recursive, and if the number of requests in the multi-search request was large, a stack overflow could arise due to the recursive invocation. This commit replaces this recursive implementation with a simple iterative implementation. Relates #23527 09 March 2017, 23:23:39 UTC
dbe45ec Fix settingsBuilder() with builder() 09 March 2017, 10:51:28 UTC
c93474e Fix link to Debian install instructions The link for the Debian install instructions was mistakenly pointing to the RPM instructions. This commit fixes the reference. Relates #23485 06 March 2017, 22:40:08 UTC
25595a0 Handle existence of cgroup version 2 hierarchy When parsing the control groups to which the Elasticsearch process belongs, we extract a map from subsystems to paths by parsing /proc/self/cgroup. This file contains colon-delimited entries of the form hierarchy-ID:subsystem-list:cgroup-path. For control group version 1 hierarchies, the subsystem-list is a comma-delimited list of the subsystems for that hierarchy. For control group version 2 hierarchies (which can only exist on Linux kernels since version 4.5), the subsystem-list is an empty string. The previous parsing of /proc/self/cgroup incorrectly accounted for this possibility (a + instead of a * in a regular expression). This commit addresses this issue, adds a test case that covers this possibility, and simplifies the code that parses /proc/self/cgroup. Relates #23493 06 March 2017, 22:15:29 UTC
47ae063 Azure blob store's readBlob() method first checks if the blob exists (#23483) Previously, the Azure blob store would depend on a 404 StorageException coming back from Azure if trying to open an input stream to a non-existent blob. This works for Azure repositories which access a primary location path. For those configured to access a secondary location path, the Azure SDK keeps trying for a long while before returning a 404 StorageException, causing potential delays in the snapshot APIs. This commit makes an initial check if the blob exists in Azure and returns immediately with a NoSuchFileException, instead of trying to open the input stream to the blob. Closes #23480 03 March 2017, 22:06:37 UTC
26bea75 Fix sles vagrant image to no longer use custom repositories. These are no longer necessary now that the jdk is packaged with the image. 03 March 2017, 10:23:32 UTC
ec9c798 Mute Painless lambda tests on JDK 9 This commit mutes a ton of Painless lambda tests on JDK 9. This commit did not attempt to discover exactly which tests are failing, but instead just blanket muted all tests in LambdaTests, FunctionRefTests, and AugmentationTests. Relates #23473 03 March 2017, 03:38:19 UTC
ee9735a Build: Fix notice generation to use configured notice file (#23472) While the esplugin extension already had an input for the base notice file of the plugin, the NoticeTask did not actually know how to use that, and always used the base notice file from Elasticsearch. 03 March 2017, 03:05:06 UTC
6a13c6f Fix notice generation to use configured notice file 03 March 2017, 00:53:52 UTC
4cfbccd Build: Allow ignoring sha checks for dependencies (#23471) This commit adds an `ignoreSha` configuration to the `dependencyLicense` task, which allows to not check for a sha for a given dependency jar. This is useful for locally built jars, which will constantly change. 03 March 2017, 00:50:04 UTC
2887e48 Add imports lost during a backport This commit adds some import statements that were lost during a backport. 02 March 2017, 23:29:21 UTC
fd896ac Ensure we try to autodetect content type for handlers that support plain text (#23452) For rest handlers that support plain text, we did not always try to auto detect the content type and instead just sent the request along. This breaks sending of JSON or other XContent requests without a content type header as the body will be parsed as plain text. This commit ensures we auto detect for these requests if auto detection is enabled. 02 March 2017, 22:46:29 UTC
da66d73 HTTP transport stashes the ThreadContext instead of the RestController (#23456) Previously, the RestController would stash the context prior to copying headers. However, there could be deprecation log messages logged and in turn warning headers being added to the context prior to the stashing of the context. These headers in the context would then be removed from the request and also leaked back into the calling thread's context. This change moves the stashing of the context to the HttpTransport so that the network threads' context isn't accidentally populated with warning headers and to ensure the headers added early on in the RestController are not excluded from the response. 02 March 2017, 20:07:43 UTC
607b22f Deprecate Netty 3 This commit adds deprecation warnings for the use of Netty 3 for transport or HTTP requests. Relates #23459 02 March 2017, 19:39:25 UTC
00f36f7 Add documentation for Bash requirement This commit adds a note to the docs regarding the requirements for Bash. Relates #23464 02 March 2017, 18:37:51 UTC
e26291c [INGEST] Added processor type and tag header to error when processor type isn't available on node. [INGEST] Accumulate any potential other processor parse errors before failing instead of failing upon first processor parsing error. 02 March 2017, 08:09:58 UTC
ecc6ea1 Properly clean up thread context after tests Today when resetting the deprecation logger after a test is torn down, we attach a new thread context to the deprecation logger. This thread context is never cleared and we are left with a thread context attached to the deprecation logger for every test method that ran in the same JVM. This commit adds a flag when resetting the deprecation logger to not attach a new thread context when the test is being torn down. Relates #23441 01 March 2017, 21:34:44 UTC
e6c5ae3 Correct version on repository-hdfs Guava dependency This commit sets the version on the repository-hdfs Guava dependency to version 11.0.2. This change is made to align the version here with the version that is defined in the POM for Hadoop 2.7.1, the version of Hadoop that the repository-hdfs plugin is based on. See HADOOP-10101 and HADOOP-11319 for the ridiculous history of trying to upgrade Guava past this version in the Hadoop project. Relates #23420 01 March 2017, 21:30:15 UTC
dbef89b [TEST] skip yaml tests that expect warnings with nodes pre 5.3.0 (#23434) * [TEST] skip yaml tests that expect warnings with nodes pre 5.3.0 The skip will come into play when we run backwards tests. We changed the deprecation headers format with 5.3.0 and we can't properly test that pre 5.3.0 nodes return the previous format warnings, so we just skip these tests whenever a pre 5.3.0 node is in the cluster. * [TEST] Make sure that source_content_type warning header is properly matched 01 March 2017, 16:17:10 UTC
151de80 Fixed typo in documentation (#23406) * Fixed typo in documentation The option in "gap_policy" "insert_zeros" was missing a trailing "s" * Update movavg-aggregation.asciidoc 01 March 2017, 14:22:17 UTC
fc9238b Docs: Fixed Parameters tables to use defaults col (#23396) Occurred in a few places for pipeline aggregates. 01 March 2017, 13:47:12 UTC
fe4e4a9 fix typo (#23424) 01 March 2017, 13:12:48 UTC
ec842cf Set build hash to Unknown when unavailable This commit changes the build hash to be the string "Unknown" when for some reason this build hash is not available. This aligns the value with the value we use when the hash is not available from the jar manifest. This situation can occur when running tests from a worktree which is not currently handled correctly by JGit, the upstream dependency that is used to acquire the hash. This causes problems when running tests locally because the warning header pattern expects a hash or the string "Unknown". While the warning header pattern be changed to allow "N/A" as well, it seemed more sensible to align the value here with the value when the hash is not available from the jar manifest. Relates #23421 01 March 2017, 12:58:41 UTC
a06a38e [TEST] Fix race condition when blocking cluster state processing during primary relocation Two tests were periodically failing. What both tests are doing is starting a relocation of a shard from one node to another. Once the recovery process is started, the test blocks cluster state processing on the relocation target using the BlockClusterStateProcessing disruption. The test then indefinitely waits for the relocation to complete. The stack dump shows that the relocation is stuck in the PeerRecoveryTargetService.waitForClusterState method, waiting for the relocation target node to have at least the same cluster state version as the relocation source. The reason why it gets stuck is the following race: 1) The test code executes a reroute command that relocates a shard from one node to another 2) Relocation target node starts applying the clusterstate with relocation info, starting the recovery process. 4) Recovery is super fast and quickly goes to the waitForClusterState method, which wants to ensure that the cluster state that is applied on the relocation target is at least as new as the one on the relocation source. The relocation source has already applied the cluster state but the relocation target is still in the process of applying it. The waitForClusterState method thus uses a ClusterObserver to wait for the next cluster state. Internally this means submitting a task with priority HIGH to the cluster service. 5) Cluster state application is about to finish on the relocation target. As one of the last steps, it acks to the master which makes the reroute command return successfully. 6) The test code then blocks cluster state processing on the relocation target by submitting a cluster state update task (with priority IMMEDIATE) that blocks execution. If the task that is submitted in step 6 is handled before the one in step 4 by ClusterService's thread executor, cluster state processing becomes blocked and prevents the cluster state observer from observing the applied cluster state. 01 March 2017, 11:19:15 UTC
73aa375 Fix date format in warning headers This commit fixes the date format in warning headers. There is some confusion around whether or not RFC 1123 requires two-digit days. However, the warning header specification very clearly relies on a format that requires two-digit days. This commit removes the usage of RFC 1123 date/time format from Java 8, which allows for one-digit days, in favor of a format that forces two-digit days (it's otherwise identical to RFC 1123 format, it is just fixed width). Relates #23418 01 March 2017, 01:29:02 UTC
54b0518 Fix compilation of DeprecationLogger This commit removes a character that was accidentally added while preparing a commit. 28 February 2017, 23:39:51 UTC
f8b573a Fix another usage of raw types This commit fixes another usage of raw types in an array creation. 28 February 2017, 23:37:07 UTC
654c626 Fix usage of raw types This commit fixes some warnings that were causing build failures to the use of raw types. 28 February 2017, 23:15:13 UTC
5dcff0e Add missing versions from upgrade test versions This commit adds two missing version constants from the upgrade test versions. This list of versions is used to randomly select a version to upgrade from, and the list of constants must be kept up to date with the list of released versions. 28 February 2017, 22:58:16 UTC
01d4c77 Add convenience method for asserting deprecations This commit adds a convenience method for simultaneously asserting settings deprecations and other warnings and fixes some tests where setting deprecations and general warnings were present. 28 February 2017, 22:55:44 UTC
cba36e4 Remove unnecessary empty string append This commit removes an unnecessary appending of the empty string in a test case. 28 February 2017, 21:15:12 UTC
b638610 Fix another warning assertion in credentials test This commit fixes a warning assertion in a credentials test now that we are stricter about warning message assertions. 28 February 2017, 21:14:46 UTC
d90cbd2 Fix warning assertion in credentials test This commit fixes a warning assertion in a credentials test now that we are stricter about warning message assertions. 28 February 2017, 20:12:07 UTC
834b17f Create version constants for next bug fix version v5.2.3 28 February 2017, 18:01:14 UTC
1de01df Revert "Deprecate Netty 3" This reverts commit 2750beaeb39b79470d50fd702269ab85c991bdb1. 28 February 2017, 15:49:05 UTC
4b8218f Typo (#23344) 28 February 2017, 15:32:40 UTC
2750bea Deprecate Netty 3 This commit adds deprecation warnings for the use of Netty 3 for transport or HTTP requests. Relates #23411 28 February 2017, 14:53:32 UTC
456e51a Remove unnecessary Groovy deprecation logging This commit removes a deprecation log message that is printed any time the Groovy script engine is loaded. This is unnecessary because we print deprecation messages any time a Groovy script is used, so this message appears independently of whether or not a user is actually using Groovy scripts. Relates #23410 28 February 2017, 14:21:26 UTC
e8cef75 Updated 5.2.2 release notes 28 February 2017, 11:42:52 UTC
b19ab5e Tests: Fix RemoteScrollableHitSourceTests With #23307, the expected exception is wrapped two times into a RuntimeException instead of being thrown directly. 28 February 2017, 10:46:05 UTC
806b429 Fix merge scheduler test that depends on the number of processors 28 February 2017, 10:44:28 UTC
61b065a #23391: simplify setting fallback (missing in the squash commit) 28 February 2017, 10:35:33 UTC
986801f Fix merge scheduler config settings (#23391) Change Setting#get(Settings, Settings) to fallback only if the setting is present in the secondary. This is needed to fix setting that relies on other settings. Replace IT with uts. 28 February 2017, 09:38:19 UTC
d924d85 RestClient asynchronous execution should not throw exceptions (#23307) The current implementation of RestClient.performAsync() methods can throw exceptions before the request is asynchronously executed. Since it only throws unchecked exceptions, it's easy for the user/dev to forget to catch them. Instead I think async methods should never throw exceptions and should always call the listener onFailure() method. 28 February 2017, 09:09:19 UTC
f18964c Fix deprecation escaping tests This commit fixes an off-by-one error in the deprecation escaping tests. 27 February 2017, 22:19:49 UTC
ec8bbc4 Fix deprecation HTTP tests This commit adapts the deprecation HTTP tests for the RFC 7234 specification compliant warning headers. 27 February 2017, 22:16:31 UTC
f81647b Correct warning header to be compliant The warning header used by Elasticsearch for delivering deprecation warnings has a specific format (RFC 7234, section 5.5). The format specifies that the warning header should be of the form warn-code warn-agent warn-text [warn-date] Here, the warn-code is a three-digit code which communicates various meanings. The warn-agent is a string used to identify the source of the warning (either a host:port combination, or some other identifier). The warn-text is quoted string which conveys the semantic meaning of the warning. The warn-date is an optional quoted date that can be in a few different formats. This commit corrects the warning header within Elasticsearch to follow this specification. We use the warn-code 299 which means a "miscellaneous persistent warning." For the warn-agent, we use the version of Elasticsearch that produced the warning. The warn-text is unchanged from what we deliver today, but is wrapped in quotes as specified (this is important as a problem that exists today is that multiple warnings can not be split by comma to obtain the individual warnings as the warnings might themselves contain commas). For the warn-date, we use the RFC 1123 format. Relates #23275 27 February 2017, 18:30:41 UTC
d4ef70b Add back lost configuration that forces 2 nodes in integ tests This was lost in a backport of #23361 27 February 2017, 12:32:10 UTC
ab69d95 reduce the number of iterations in testPrimaryRelocationWhileIndexing and flush every 5 Without flushing the translog doubles it's size on every recovery 26 February 2017, 18:46:18 UTC
1abcdd5 rollback unneeded change in testNotifyOnDisconnect 26 February 2017, 11:40:20 UTC
9f952d6 disable sampling in testNotifyOnDisconnect the background activity confuses the test 26 February 2017, 11:40:20 UTC
54b5531 CLI: Fix prompting for yes/no to handle console returning null (#23320) Console.readText may return null in certain cases. This commit fixes a bug in Terminal.promptYesNo which assumed a non-null return value. It also adds a test for this, and modifies mock terminal to be able to handle null input values. 25 February 2017, 04:21:28 UTC
57d328f Build: Remove extra copies of netty license (#23361) The dependencyLicenses check has the ability to map multiple jar files to the same license file. However, netty was not taking advantage of this, and had duplicate copies of its license/notice files for each jar. This commit reduces the copies to one and uses the mapping feature. 24 February 2017, 23:21:50 UTC
de54d16 Always restore the ThreadContext for operations delayed due to a block (#23349) The IndexShardOperationsLock has a mechanism to delay operations if there is currently a block on the lock. These delayed operations are executed when the block is released and are executed by a different thread. When the different thread executes the operations, the ThreadContext is that of the thread that was blocking operations. In order to preserve the ThreadContext, we need to store it and wrap the listener when the operation is delayed. 24 February 2017, 13:25:23 UTC
819ba64 Added release notes for 5.2.2 24 February 2017, 09:45:45 UTC
7d033b9 [INGEST] Lazy load the geoip databases. Load the geoip database the first time a pipeline gets created that has a geoip processor. This saves memory (measured ~150MB for the city db) in cases when the plugin is installed, but not used. 24 February 2017, 07:53:51 UTC
b8bd5c8 Test: Fix hdfs test fixture setup on windows The test setup for hdfs is a little complicated for windows, needing to check if the hdfs fixture can be run at all. This was unfortunately not updated when the integ tests were reorganized into separate runner and cluster setups. 23 February 2017, 19:22:29 UTC
d2b4827 Keep the pipeline handler queue small initially This commit sets the intial size of the pipeline handler queue small to prevent waste if pipelined requests are never sent. Since the queue will grow quickly if pipeline requests are indeed set, this should not be problematic. Relates #23335 23 February 2017, 19:22:02 UTC
dd7422a Respect promises on pipelined responses When pipelined responses are sent to the pipeline handler for writing, they are not necessarily written immediately. They must be held in a priority queue until all responses preceding the given response are written. This means that when write is invoked on the handler, the promise that is attached to the write invocation will not necessarily be the promise associated with the responses that are written while the queue is drained. To address this, the promise associated with a pipelined response must be held with the response and then used when the channel context is actually written to. This was introduced when ensuring that the releasing promise is always chained through on write calls lest the releasing promise never be invoked. This leads to many failing test cases, so no new test cases are needed here. Relates #23317 23 February 2017, 14:43:30 UTC
9e287fc Tests: Ensure multi node integ tests wait on first node When a rest integ test has multiple nodes, each node is supposed to not start configuring itself until the first node has been started, so that the unicast host information can be written. However, this was never explicitly setup to occur, and we were just very lucky with the current gradle version and stability of the code always produced a task graph that had node0 starting first. With the recent refactorings to integ tests, the order has changed. This commit fixes the ordering by adding an explicit dependency between the first node and the other nodes. 23 February 2017, 04:57:09 UTC
51423ff Add comments to HttpPipeliningHandler This commit adds some comments explaining the design of HttpPipeliningHandler. 23 February 2017, 01:54:13 UTC
50513f9 Revert "Remove reference to non-existent class" This reverts commit 04d6f4e3dfc95a3cfeb0fbad38a34b935e189653. 23 February 2017, 00:50:18 UTC
b8449be [TEST] Fix incorrect test cluster name in cluster health doc tests 23 February 2017, 00:32:39 UTC
04d6f4e Remove reference to non-existent class This commit removes a reference to a class that does not exist. This reference appeared during a backport gone wild. 23 February 2017, 00:31:35 UTC
d78270c Add missing import in Netty4HttpServerTransport This commit adds a missing import that was removed during a backport. 23 February 2017, 00:31:35 UTC
f8b53d7 Build: Change location in zip of license and notice inclusion for plugins (#23316) This commit moves the LICENSE.txt and NOTICE.txt files for each plugin to be alongside the other plugin files, inside the elasticsearch subdir. This ensures those files are installed alongside the plugin. 23 February 2017, 00:14:28 UTC
2bc6ab2 Script: Fix value of `ctx._now` to be current epoch time in milliseconds (#23175) In update scripts, `ctx._now` uses the same milliseconds value used by the rest of the system to calculate deltas. However, that time is not actually epoch milliseconds, as it is derived from `System.nanoTime()`. This change reworks the estimated time thread in ThreadPool which this time is based on to make available both the relative time, as well as absolute milliseconds (epoch) which may be used with calendar system. It also renames the EstimatedTimeThread to a more apt CachedTimeThread. closes #23169 23 February 2017, 00:08:52 UTC
f272212 Build: Rework integ test setup and shutdown to ensure stop runs when desired (#23304) Gradle's finalizedBy on tasks only ensures one task runs after another, but not immediately after. This is problematic for our integration tests since it allows multiple project's integ test clusters to be simultaneously. While this has not been a problem thus far (gradle 2.13 happened to keep the finalizedBy tasks close enough that no clusters were running in parallel), with gradle 3.3 the task graph generation has changed, and numerous clusters may be running simultaneously, causing memory pressure, and thus generally slower tests, or even failure if the system has a limited amount of memory (eg in a vagrant host). This commit reworks how integ tests are configured. It adds an `integTestCluster` extension to gradle which is equivalent to the current `integTest.cluster` and moves the rest test runner task to `integTestRunner`. The `integTest` task is then just a dummy task, which depends on the cluster runner task, as well as the cluster stop task. This means running `integTest` in one project will both run the rest tests, and shut down the cluster, before running `integTest` in another project. 22 February 2017, 22:17:22 UTC
5e2f9a4 Don't set local node on cluster state used for node join validation (#23311) When a node wants to join a cluster, it sends a join request to the master. The master then sends a join validation request to the node. This checks that the node can deserialize the current cluster state that exists on the master and that it can thus handle all the indices that are currently in the cluster (see #21830). The current code can trip an assertion as it does not take the cluster state as is but sets itself as the local node on the cluster state. This can result in an inconsistent DiscoveryNodes object as the local node is not yet part of the cluster state and a node with same id but different address can still exist in the cluster state. Also another node with the same address but different id can exist in the cluster state if multiple nodes are run on the same machine and ports have been swapped after node crashes/restarts. 22 February 2017, 19:32:59 UTC
dec95da Ensure that releasing listener is called When sending a response to a client, we attach a releasing listener to the channel promise. If the client disappears before the response is sent, the releasing listener was never notified. The reason the listeners were never notified was due to a mistaken invocation of write and flush on the channel which has two overrides: one that takes an existing promise, and one that does not and instead creates a new promise. When the client disappears, it is this latter promise that is notified, which does not contain the releasing listener. This commit addreses this issue by invoking the override that passes our channel promise through. Relates #23310 22 February 2017, 18:56:08 UTC
back to top