Remove index.waitTimeout configuration property

Lock acquisition timeout is set to 5 milliseconds. Increasing the
timeout causes healthcheck plugin to report temporary deadlock and
mark the entire node as unhealthy.

For that reason there is no point to increase timeout to more than
a few milliseconds.

Use `http.socketTimeout` and `http.maxTries` to control for how long
the plugin will keep retrying to acquire the lock.

Feature: Issue 13561
Change-Id: I01d6c42a0f9ac801a52b9e5915502d0eea54f134
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
index 3bd58a3..4743bee 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
@@ -455,7 +455,6 @@
     private final int threadPoolSize;
     private final int retryInterval;
     private final int maxTries;
-    private final int waitTimeout;
     private final int numStripedLocks;
     private final boolean synchronizeForced;
 
@@ -465,7 +464,6 @@
       numStripedLocks = getInt(cfg, INDEX_SECTION, NUM_STRIPED_LOCKS, DEFAULT_NUM_STRIPED_LOCKS);
       retryInterval = getInt(cfg, INDEX_SECTION, RETRY_INTERVAL_KEY, DEFAULT_INDEX_RETRY_INTERVAL);
       maxTries = getInt(cfg, INDEX_SECTION, MAX_TRIES_KEY, DEFAULT_INDEX_MAX_TRIES);
-      waitTimeout = getInt(cfg, INDEX_SECTION, WAIT_TIMEOUT_KEY, DEFAULT_TIMEOUT_MS);
       synchronizeForced =
           cfg.getBoolean(INDEX_SECTION, SYNCHRONIZE_FORCED_KEY, DEFAULT_SYNCHRONIZE_FORCED);
     }
@@ -486,10 +484,6 @@
       return maxTries;
     }
 
-    public int waitTimeout() {
-      return waitTimeout;
-    }
-
     public boolean synchronizeForced() {
       return synchronizeForced;
     }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
index 7dad07d..3fd26db 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
@@ -28,15 +28,14 @@
   private static final FluentLogger log = FluentLogger.forEnclosingClass();
 
   private static final int NUMBER_OF_INDEX_TASK_TYPES = 4;
+  private static final int WAIT_TIMEOUT_MS = 5;
 
   private final Striped<Semaphore> semaphores;
-  private final long waitTimeout;
 
   @Inject
   public IndexEventLocks(Configuration cfg) {
     this.semaphores =
         Striped.semaphore(NUMBER_OF_INDEX_TASK_TYPES * cfg.index().numStripedLocks(), 1);
-    this.waitTimeout = cfg.index().waitTimeout();
   }
 
   public CompletableFuture<?> withLock(
@@ -45,7 +44,7 @@
     Semaphore idSemaphore = getSemaphore(indexId);
     try {
       log.atFine().log("Trying to acquire %s", id);
-      if (idSemaphore.tryAcquire(waitTimeout, TimeUnit.MILLISECONDS)) {
+      if (idSemaphore.tryAcquire(WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
         log.atFine().log("Acquired %s", id);
         return function
             .invoke()
@@ -65,7 +64,7 @@
       String timeoutMessage =
           String.format(
               "Acquisition of the locking of %s timed out after %d msec: consider increasing the number of shards",
-              indexId, waitTimeout);
+              indexId, WAIT_TIMEOUT_MS);
       log.atWarning().log(timeoutMessage);
       lockAcquireTimeoutCallback.invoke();
       CompletableFuture<?> failureFuture = new CompletableFuture<>();
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index f5c786f..489c9f4 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -207,13 +207,8 @@
 :   The interval of time in milliseconds between the subsequent auto-retries.
     Defaults to 30000 (30 seconds).
 
-```index.waitTimeout```
-:   Maximum interval of time in milliseconds the plugin waits to acquire
-    the lock for an indexing call. When not specified, the default value
-    is set to 5000ms.
-
-NOTE: the default settings for `http.socketTimeout`, `http.maxTries` and `index.waitTimeout`
-ensure that the plugin will keep retrying to forward a message for one hour.
+NOTE: the default settings for `http.socketTimeout` and `http.maxTries` ensure
+that the plugin will keep retrying to forward a message for one hour.
 
 ```websession.synchronize```
 :   Whether to synchronize web sessions.
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
index 17013cc..0f21ff7 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
@@ -110,7 +110,6 @@
     Configuration.Index cfgIndex = mock(Configuration.Index.class);
     when(configuration.index()).thenReturn(cfgIndex);
     when(cfgIndex.numStripedLocks()).thenReturn(Configuration.DEFAULT_NUM_STRIPED_LOCKS);
-    when(cfgIndex.waitTimeout()).thenReturn(INDEX_WAIT_TIMEOUT_MS);
 
     Configuration.Http http = mock(Configuration.Http.class);
     when(configuration.http()).thenReturn(http);