Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to run saga sample #1304

Closed
sobkowiak opened this issue Feb 26, 2020 · 1 comment · Fixed by #1315
Closed

Unable to run saga sample #1304

sobkowiak opened this issue Feb 26, 2020 · 1 comment · Fixed by #1315

Comments

@sobkowiak
Copy link
Member

sobkowiak commented Feb 26, 2020

I run the sample as described in the readme. All components start successfully and the saga route starts sending the messages.

[1] 2020-02-26 19:59:42.753 INFO  [default-workqueue-2] route1 - Executing saga #1
[1] 2020-02-26 19:59:47.531 INFO  [default-workqueue-4] route1 - Executing saga #2
[1] 2020-02-26 19:59:52.533 INFO  [default-workqueue-1] route1 - Executing saga #3
[1] 2020-02-26 19:59:57.521 INFO  [default-workqueue-5] route1 - Executing saga #4
[1] 2020-02-26 20:00:02.535 INFO  [default-workqueue-3] route1 - Executing saga #5
[1] 2020-02-26 20:00:07.539 INFO  [default-workqueue-6] route1 - Executing saga #6
[1] 2020-02-26 20:00:12.526 INFO  [default-workqueue-7] route1 - Executing saga #7

After some seconds following errors are reported.

[1] 2020-02-26 20:00:14.562 ERROR [default-workqueue-2] DefaultErrorHandler - Failed delivery for (MessageId: ID-saga-7c58cfbf49-ft2xr-1582747182505-0-8 on ExchangeId: ID-saga-7c58cfbf49-ft2xr-1582747182505-0-1). Exhausted after delivery attempt: 1 caught: org.apache.http.conn.HttpHostConnectException: Connect to train:8080 [train/10.109.250.143] failed: Connection timed out (Connection timed out)
[1] 
[1] Message History
[1] ---------------------------------------------------------------------------------------------------------------------------------------
[1] RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
[1] [route1            ] [route1            ] [from[timer://clock?period=5s]                                                 ] [     32061]
[1] [route1            ] [output1           ] [saga                                                                          ] [         0]
[1] [route1            ] [setHeader1        ] [setHeader[id]                                                                 ] [         0]
[1] [route1            ] [setHeader2        ] [setHeader[CamelHttpMethod]                                                    ] [         0]
[1] [route1            ] [log1              ] [log                                                                           ] [         1]
[1] [route1            ] [to1               ] [http://train:8080/api/train/buy/seat                                          ] [         0]
[1] 
[1] Stacktrace
[1] ---------------------------------------------------------------------------------------------------------------------------------------
[1] org.apache.http.conn.HttpHostConnectException: Connect to train:8080 [train/10.109.250.143] failed: Connection timed out (Connection timed out)
[1] 	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:330) ~[org.apache.camel.camel-http-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:189) ~[org.apache.camel.camel-http-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:67) ~[org.apache.camel.camel-support-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:134) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryState.run(RedeliveryErrorHandler.java:476) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:185) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:87) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.support.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:93) ~[org.apache.camel.camel-support-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.saga.RequiredSagaProcessor.lambda$null$1(RequiredSagaProcessor.java:54) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.saga.SagaProcessor.ifNotException(SagaProcessor.java:113) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.processor.saga.RequiredSagaProcessor.lambda$null$2(RequiredSagaProcessor.java:53) ~[org.apache.camel.camel-base-3.0.1.jar:3.0.1]
[1] 	at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source) [?:1.8.0_242]
[1] 	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source) [?:1.8.0_242]
[1] 	at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) [?:1.8.0_242]
[1] 	at java.util.concurrent.CompletableFuture.complete(Unknown Source) [?:1.8.0_242]
[1] 	at org.apache.camel.service.lra.LRAClient$1.completed(LRAClient.java:165) [org.apache.camel.camel-lra-3.0.1.jar:3.0.1]
[1] 	at org.apache.camel.service.lra.LRAClient$1.completed(LRAClient.java:162) [org.apache.camel.camel-lra-3.0.1.jar:3.0.1]
[1] 	at org.apache.cxf.jaxrs.client.JaxrsClientCallback.handleResponse(JaxrsClientCallback.java:76) [org.apache.cxf.cxf-rt-rs-client-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.jaxrs.client.WebClient$ClientAsyncResponseInterceptor.doHandleAsyncResponse(WebClient.java:1034) [org.apache.cxf.cxf-rt-rs-client-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.jaxrs.client.AbstractClient$AbstractClientAsyncResponseInterceptor.handleAsyncResponse(AbstractClient.java:1320) [org.apache.cxf.cxf-rt-rs-client-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.jaxrs.client.AbstractClient$AbstractClientAsyncResponseInterceptor.handleMessage(AbstractClient.java:1290) [org.apache.cxf.cxf-rt-rs-client-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [org.apache.cxf.cxf-core-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.jaxrs.client.ClientMessageObserver.onMessage(ClientMessageObserver.java:56) [org.apache.cxf.cxf-rt-rs-client-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1693) [org.apache.cxf.cxf-rt-transports-http-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1192) [org.apache.cxf.cxf-rt-transports-http-3.3.4.jar:3.3.4]
[1] 	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:412) [org.apache.cxf.cxf-core-3.3.4.jar:3.3.4]
[1] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_242]
[1] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_242]
[1] 	at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:345) [org.apache.cxf.cxf-core-3.3.4.jar:3.3.4]
[1] 	at java.lang.Thread.run(Unknown Source) [?:1.8.0_242]
[1] Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
[1] 	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_242]
[1] 	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[?:1.8.0_242]
[1] 	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[?:1.8.0_242]
[1] 	at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_242]
[1] 	at java.net.SocksSocketImpl.connect(Unknown Source) ~[?:1.8.0_242]
[1] 	at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_242]
[1] 	at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[org.apache.httpcomponents.httpclient-4.5.10.jar:4.5.10]
[1] 	... 40 more

Next the train, flight and payment pods except the saga pod are terminated. It looks like the saga route could not reach the train and flight service and after some time the pods are terminated as they are not hit

Here the created resources

kubectl get all
NAME                                            READY   STATUS        RESTARTS   AGE
pod/camel-k-groovy-builder                      0/1     Completed     0          20h
pod/camel-k-java-builder                        0/1     Completed     0          20h
pod/camel-k-js-builder                          0/1     Completed     0          19h
pod/camel-k-kit-bparf882see9i2ueqs50-builder    0/1     Completed     0          19h
pod/camel-k-kit-bparfbg2see9i2ueqs5g-builder    0/1     Completed     0          19h
pod/camel-k-kit-bparfco2see9i2ueqs60-builder    0/1     Completed     0          19h
pod/camel-k-knative-builder                     0/1     Completed     0          19h
pod/camel-k-operator-7f788d94fd-ftgjt           1/1     Running       1          22h
pod/flight-2hfrj-deployment-5559959d6-99xgf     2/2     Running       0          12s
pod/lra-coordinator-f74d8856-fsln7              1/1     Running       2          19h
pod/payment-c97n2-deployment-59cdbf87f8-q8q9b   2/2     Running       0          14s
pod/saga-7c58cfbf49-74xhz                       1/1     Running       0          8s
pod/train-f274l-deployment-8659d76fd8-htzhh     2/2     Running       0          17s

NAME                            TYPE           CLUSTER-IP      EXTERNAL-IP                                            PORT(S)                             AGE
service/flight                  ExternalName   <none>          cluster-local-gateway.istio-system.svc.cluster.local   <none>                              8s
service/flight-2hfrj            ClusterIP      10.108.94.21    <none>                                                 80/TCP                              11s
service/flight-2hfrj-private    ClusterIP      10.110.77.244   <none>                                                 80/TCP,9090/TCP,9091/TCP,8022/TCP   11s
service/lra-coordinator         ClusterIP      10.110.159.97   <none>                                                 8080/TCP                            19h
service/messages-kn-channel     ExternalName   <none>          imc-dispatcher.knative-eventing.svc.cluster.local      <none>                              21h
service/payment                 ExternalName   <none>          cluster-local-gateway.istio-system.svc.cluster.local   <none>                              11s
service/payment-c97n2           ClusterIP      10.104.56.138   <none>                                                 80/TCP                              14s
service/payment-c97n2-private   ClusterIP      10.98.190.60    <none>                                                 80/TCP,9090/TCP,9091/TCP,8022/TCP   14s
service/train                   ExternalName   <none>          cluster-local-gateway.istio-system.svc.cluster.local   <none>                              15s
service/train-f274l             ClusterIP      10.103.144.74   <none>                                                 80/TCP                              17s
service/train-f274l-private     ClusterIP      10.97.51.214    <none>                                                 80/TCP,9090/TCP,9091/TCP,8022/TCP   17s
service/words-kn-channel        ExternalName   <none>          imc-dispatcher.knative-eventing.svc.cluster.local      <none>                              21h

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/camel-k-operator           1/1     1            1           22h
deployment.apps/flight-2hfrj-deployment    1/1     1            1           12s
deployment.apps/lra-coordinator            1/1     1            1           19h
deployment.apps/payment-c97n2-deployment   1/1     1            1           14s
deployment.apps/saga                       1/1     1            1           8s
deployment.apps/train-f274l-deployment     1/1     1            1           17s

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/camel-k-operator-7f788d94fd           1         1         1       22h
replicaset.apps/flight-2hfrj-deployment-5559959d6     1         1         1       12s
replicaset.apps/lra-coordinator-f74d8856              1         1         1       19h
replicaset.apps/payment-c97n2-deployment-59cdbf87f8   1         1         1       14s
replicaset.apps/saga-7c58cfbf49                       1         1         1       8s
replicaset.apps/train-f274l-deployment-8659d76fd8     1         1         1       17s

NAME                                         CONFIG NAME   K8S SERVICE NAME   GENERATION   READY   REASON
revision.serving.knative.dev/flight-2hfrj    flight        flight-2hfrj       1            True    
revision.serving.knative.dev/payment-c97n2   payment       payment-c97n2      1            True    
revision.serving.knative.dev/train-f274l     train         train-f274l        1            True    

NAME                                URL                                          READY   REASON
route.serving.knative.dev/flight    http://flight.knativetutorial.example.com    True    
route.serving.knative.dev/payment   http://payment.knativetutorial.example.com   True    
route.serving.knative.dev/train     http://train.knativetutorial.example.com     True    

NAME                                        LATESTCREATED   LATESTREADY     READY   REASON
configuration.serving.knative.dev/flight    flight-2hfrj    flight-2hfrj    True    
configuration.serving.knative.dev/payment   payment-c97n2   payment-c97n2   True    
configuration.serving.knative.dev/train     train-f274l     train-f274l     True    

NAME                                  URL                                          LATESTCREATED   LATESTREADY     READY   REASON
service.serving.knative.dev/flight    http://flight.knativetutorial.example.com    flight-2hfrj    flight-2hfrj    True    
service.serving.knative.dev/payment   http://payment.knativetutorial.example.com   payment-c97n2   payment-c97n2   True    
service.serving.knative.dev/train     http://train.knativetutorial.example.com     train-f274l     train-f274l     True    

NAME                                             READY   REASON   URL                                                            AGE
inmemorychannel.messaging.knative.dev/messages   True             http://messages-kn-channel.knativetutorial.svc.cluster.local   21h
inmemorychannel.messaging.knative.dev/words      True             http://words-kn-channel.knativetutorial.svc.cluster.local      21h



kubectl get pods,svc -n istio-system 
NAME                                         READY   STATUS    RESTARTS   AGE
pod/cluster-local-gateway-7588cdfbc7-tk2cn   1/1     Running   1          22h
pod/istio-ingressgateway-5c87b8d6c7-g9cq4    1/1     Running   1          22h
pod/istio-pilot-7c555cf995-tcwnx             1/1     Running   1          22h

NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                                                                      AGE
service/cluster-local-gateway   ClusterIP      10.109.250.143   <none>        80/TCP,443/TCP,31400/TCP,15011/TCP,8060/TCP,15029/TCP,15030/TCP,15031/TCP,15032/TCP                                                          22h
service/istio-ingressgateway    LoadBalancer   10.96.37.249     <pending>     15020:32477/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:31126/TCP,15030:30428/TCP,15031:31501/TCP,15032:32009/TCP,15443:30860/TCP   22h
service/istio-pilot             ClusterIP      10.110.58.227    <none>        15010/TCP,15011/TCP,8080/TCP,15014/TCP  

I use minikube 1.6.2 with knative 0.11.0 and istio 1.3.5 and Camel K RC2

@sobkowiak
Copy link
Member Author

The integrations are run with following trait container.service-port=8080. Which port is confugured with this trait parameter? I can see in the port in the pod is set to 8080, but it is the default setting. When I look to the train-f274l and train-f274l -private service I cannot see the port 8080 there but the port 80

metadata:
  name: train-m57tm-private
............
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8012
  - name: queue-metrics
    port: 9090
    protocol: TCP
    targetPort: queue-metrics
  - name: http-usermetric
    port: 9091
    protocol: TCP
    targetPort: http-usermetric
  - name: http-queueadm
    port: 8022
    protocol: TCP
    targetPort: 8022

and

metadata:
  name: train-m57tm
............
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant