Revision c4138e51121ef06a6404866cddc601906fe5c868 authored by Jim Ferenczi on 16 October 2020, 06:37:23 UTC, committed by jimczi on 16 October 2020, 06:49:27 UTC
* Async search should retry updates on version conflict

The _async_search APIs can throw version conflict exception when the internal response
is updated concurrently. That can happen if the final response is written while the user
extends the expiration time. That scenario should be rare but it happened in Kibana for
several users so this change ensures that updates are retried at least 5 times. That
should resolve the transient errors for Kibana. This change also preserves the version
conflict exception in case the retry didn't work instead of returning a confusing 404.
This commit also ensures that we don't delete the response if the search was cancelled
internally and not deleted explicitly by the user.

Closes #63213
1 parent eb6cd20
Raw File
build.gradle
/*
 * Licensed to Elasticsearch under one or more contributor
 * license agreements. See the NOTICE file distributed with
 * this work for additional information regarding copyright
 * ownership. Elasticsearch licenses this file to you under
 * the Apache License, Version 2.0 (the "License"); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

subprojects {
  // fixtures is just intermediate parent project
  if (name == 'fixtures') return

  group = 'org.elasticsearch.test'
  apply plugin: 'elasticsearch.build'
  apply plugin: 'elasticsearch.publish'

  // TODO: should we have licenses for our test deps?
  tasks.named("dependencyLicenses").configure { it.enabled = false }
  dependenciesInfo.enabled = false

  // TODO: why is the test framework pulled in...
  jarHell.enabled = false
}
back to top