Uploaded image for project: 'Camunda Optimize'
  1. Camunda Optimize
  2. OPT-5438

EngineVersionChecker swallows cause of a HTTP request failure

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • L3 - Default
    • None
    • None
    • backend
    • Not defined

    Description

      Problem:
      If the camunda bpm `rest` endpoint cannot be called due to protocol or SSL issues the actual cause if not visible on the optimize log.

      Steps to reproduce:
      1. Configure an address for the camunda bpm `rest` (e.g. use https for an http endpoint, or configure an https endpoint with a self-signed certificate) endpoint
      2. Start Optimize

      Actual result :
      The following error is logged:

      org.camunda.optimize.service.exceptions.OptimizeRuntimeException: Engine didn't respond. Can not verify this engine's version
      	at org.camunda.optimize.service.util.EngineVersionChecker.checkEngineVersionSupport(EngineVersionChecker.java:50)
      	at org.camunda.optimize.rest.engine.EngineContext.getEngineClient(EngineContext.java:104)
      	at org.camunda.optimize.rest.engine.EngineContext.getUserById(EngineContext.java:173)
      	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
      	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
      	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
      	at org.camunda.optimize.rest.engine.EngineContext.getUsersById(EngineContext.java:321)
      	at org.camunda.optimize.service.identity.AbstractIdentityCacheService.fetchUsersById(AbstractIdentityCacheService.java:268)
      	at org.camunda.optimize.service.identity.UserTaskIdentityCacheService.lambda$populateCache$0(UserTaskIdentityCacheService.java:55)
      	at org.camunda.optimize.service.es.reader.AssigneeAndCandidateGroupsReader.consumeUserTaskFieldTermsInBatches(AssigneeAndCandidateGroupsReader.java:198)
      	at org.camunda.optimize.service.es.reader.AssigneeAndCandidateGroupsReader.consumeUserTaskFieldTermsInBatches(AssigneeAndCandidateGroupsReader.java:161)
      	at org.camunda.optimize.service.es.reader.AssigneeAndCandidateGroupsReader.consumeAssigneesInBatches(AssigneeAndCandidateGroupsReader.java:62)
      	at org.camunda.optimize.service.identity.UserTaskIdentityCacheService.lambda$populateCache$2(UserTaskIdentityCacheService.java:53)
      	at java.base/java.util.HashMap$Values.forEach(HashMap.java:976)
      	at org.camunda.optimize.service.identity.UserTaskIdentityCacheService.populateCache(UserTaskIdentityCacheService.java:51)
      	at org.camunda.optimize.service.identity.AbstractIdentityCacheService.synchronizeIdentities(AbstractIdentityCacheService.java:148)
      	at org.camunda.optimize.service.identity.AbstractIdentityCacheService.syncIdentitiesWithRetry(AbstractIdentityCacheService.java:114)
      	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
      	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      

      This exception however lacks the underlying cause making it hard to debug and fix the underlying issue.

      Expected result:
      The Stacktrace should include the cause of the failure, e.g.

      Caused by: javax.ws.rs.ProcessingException: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
      	at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:268)
      	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
      	at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
      	at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
      	at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
      	at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
      	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
      	at org.camunda.optimize.service.util.EngineVersionChecker.checkEngineVersionSupport(EngineVersionChecker.java:48)
      	... 28 common frames omitted
      

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Activity

            People

              Unassigned Unassigned
              sebastian.bathke Sebastian Bathke
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Salesforce