Hi community

I'm using the StandardOauth2AccessTokenProvider to get and refresh a token,
which works great. But almost at every refresh, one of the nodes in the
cluster gets this error. It's not the same node which gets the error every
time, all nodes gets it but only one node at a time.

2022-08-29 06:14:28,081 ERROR [Timer-Driven Process Thread-4]
org.apache.nifi.oauth2.StandardOauth2AccessTokenProvider
StandardOauth2AccessTokenProvider[id=861dbfea-0181-1000-ffff-ffffd19b4cf0]
OAuth2 access token request failed [HTTP 400], response:
{"error":"invalid_grant","error_description":"Token is not active"}
2022-08-29 06:14:28,082 INFO [Timer-Driven Process Thread-4]
org.apache.nifi.oauth2.StandardOauth2AccessTokenProvider
StandardOauth2AccessTokenProvider[id=861dbfea-0181-1000-ffff-ffffd19b4cf0]
Refresh Access Token request failed [
https://foo.bar/auth/realms/myrealm/protocol/openid-connect/token]
org.apache.nifi.processor.exception.ProcessException: OAuth2 access token
request failed [HTTP 400]
        at
org.apache.nifi.oauth2.StandardOauth2AccessTokenProvider.getAccessDetails(StandardOauth2AccessTokenProvider.java:327)
        at
org.apache.nifi.oauth2.StandardOauth2AccessTokenProvider.refreshAccessDetails(StandardOauth2AccessTokenProvider.java:315)
        at
org.apache.nifi.oauth2.StandardOauth2AccessTokenProvider.getAccessDetails(StandardOauth2AccessTokenProvider.java:249)
        at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at
org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:254)
        at
org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:105)
        at com.sun.proxy.$Proxy183.getAccessDetails(Unknown Source)
        at
org.apache.nifi.processors.standard.InvokeHTTP.lambda$configureRequest$3(InvokeHTTP.java:1108)
        at java.util.Optional.ifPresent(Optional.java:159)
        at
org.apache.nifi.processors.standard.InvokeHTTP.configureRequest(InvokeHTTP.java:1107)
        at
org.apache.nifi.processors.standard.InvokeHTTP.onTrigger(InvokeHTTP.java:927)
        at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
        at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1283)
        at
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:214)
        at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:103)
        at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)

I can't find any information in the log, when the process successful
refresh the token. So I can't see if all nodes in the cluster is refreshing
the token at the same time, or if it's only the primary nodes which
refresh. If all nodes are refreshing could it be that one nodes is slower
than the others to refresh, and that the old tokens gets invalid after the
first node has refreshed it?

Kind regards
Jens M. Kofoed

Reply via email to