Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-31872

Retry logic on elastic requests is not working as expected (Nuxeo 10.10 only)

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: 10.10
    • Fix Version/s: None
    • Component/s: Elasticsearch

      Description

      The failsafe retry policy applied at rest call in ESRestClient might not work as expected in Nuxeo 10.10 (lts 2021 2023 are ok).
      Timeouts throw IOException instead of SocketTimeoutException an timeout parameter is not taken in account (60s vs 120s requestedà
      An example of such trace in 10.10

      2023-05-11T13:12:05,285 ERROR [AbstractWork] Exception during work: IndexingWorker(a81733e7-8777-46b4-b8d1-e36b1a1f18e6, , Progress(?%, ?/0), null)
      org.nuxeo.ecm.core.api.NuxeoException: java.io.IOException: listener timeout after waiting for [60000] ms
      	at org.nuxeo.elasticsearch.client.ESRestClient.doIndex(ESRestClient.java:438) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.client.ESRestClient.lambda$index$5(ESRestClient.java:415) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at net.jodah.failsafe.Functions$10.call(Functions.java:252) ~[failsafe-1.1.0.jar:1.1.0]
      	at net.jodah.failsafe.SyncFailsafe.call(SyncFailsafe.java:145) ~[failsafe-1.1.0.jar:1.1.0]
      	at net.jodah.failsafe.SyncFailsafe.run(SyncFailsafe.java:81) ~[failsafe-1.1.0.jar:1.1.0]
      	at org.nuxeo.elasticsearch.client.ESRestClient.index(ESRestClient.java:415) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.core.ElasticSearchIndexingImpl.processIndexRequest(ElasticSearchIndexingImpl.java:318) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.core.ElasticSearchIndexingImpl.processIndexCommand(ElasticSearchIndexingImpl.java:304) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.core.ElasticSearchIndexingImpl.indexNonRecursive(ElasticSearchIndexingImpl.java:280) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.core.ElasticSearchIndexingImpl.indexNonRecursive(ElasticSearchIndexingImpl.java:140) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.ElasticSearchComponent.indexNonRecursive(ElasticSearchComponent.java:428) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.work.IndexingWorker.doIndexingWork(IndexingWorker.java:76) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.work.AbstractIndexingWorker.doWork(AbstractIndexingWorker.java:61) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.work.BaseIndexingWorker.work(BaseIndexingWorker.java:48) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransaction(AbstractWork.java:493) ~[nuxeo-core-event-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:383) ~[nuxeo-core-event-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.elasticsearch.ElasticSearchComponent.lambda$runIndexingSyncWorker$1(ElasticSearchComponent.java:499) ~[nuxeo-elasticsearch-core-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.runtime.transaction.TransactionHelper.lambda$runWithoutTransaction$1(TransactionHelper.java:578) ~[nuxeo-runtime-jtajca-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.runtime.transaction.TransactionHelper.runAndCleanupTransactionContext(TransactionHelper.java:721) ~[nuxeo-runtime-jtajca-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.runtime.transaction.TransactionHelper.lambda$runWithoutTransaction$2(TransactionHelper.java:590) ~[nuxeo-runtime-jtajca-10.10-HF69-SNAPSHOT.jar:?]
      	at org.nuxeo.runtime.transaction.TransactionHelper.lambda$runWithoutTransactionInternal$6(TransactionHelper.java:698) ~[nuxeo-runtime-jtajca-10.10-HF69-SNAPSHOT.jar:?]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_272]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_272]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_272]
      	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_272]
      Caused by: java.io.IOException: listener timeout after waiting for [60000] ms
      	at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:905) ~[elasticsearch-rest-client-6.5.3.jar:6.5.3]
      	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:229) ~[elasticsearch-rest-client-6.5.3.jar:6.5.3]
      

        Attachments

          Activity

            People

            • Assignee:
              bdelbosc Benoit Delbosc
              Reporter:
              bdelbosc Benoit Delbosc
              Participants:
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: