boglesby commented on pull request #6835:
URL: https://github.com/apache/geode/pull/6835#issuecomment-920336128
I see the same basic exception in the CQ case, just a slightly different
stack from the server:
```
[warn 2021/09/15 12:55:30.583 PDT client-cq <queueTimer-pool1> tid=0x1f]
QueueManagerImpl failed to recover interest to server boglesbymac.local:59654
org.apache.geode.cache.client.ServerOperationException: remote server on
boglesbymac(client-cq:11999:loner):59663:660c07eb:client-cq:
org.apache.geode.security.AuthenticationRequiredException: Failed to find the
authenticated user.
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:559)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:623)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:512)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:475)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:486)
at
org.apache.geode.cache.client.internal.PoolImpl.executeOn(PoolImpl.java:857)
at
org.apache.geode.cache.query.cq.internal.ops.CreateCQOp.executeOn(CreateCQOp.java:68)
at
org.apache.geode.cache.query.cq.internal.ops.ServerCQProxyImpl.createOn(ServerCQProxyImpl.java:76)
at
org.apache.geode.cache.query.cq.internal.ClientCQImpl.createOn(ClientCQImpl.java:574)
at
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverCqs(QueueManagerImpl.java:1121)
at
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverAllInterestTypes(QueueManagerImpl.java:1239)
at
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverInterest(QueueManagerImpl.java:1069)
at
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverPrimary(QueueManagerImpl.java:928)
at
org.apache.geode.cache.client.internal.QueueManagerImpl.access$600(QueueManagerImpl.java:77)
at
org.apache.geode.cache.client.internal.QueueManagerImpl$RedundancySatisfierTask.run2(QueueManagerImpl.java:1448)
at
org.apache.geode.cache.client.internal.PoolImpl$PoolTask.run(PoolImpl.java:1336)
Caused by: org.apache.geode.security.AuthenticationRequiredException: Failed
to find the authenticated user.
at
org.apache.geode.internal.security.IntegratedSecurityService.getSubject(IntegratedSecurityService.java:123)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:249)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:244)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:230)
at
org.apache.geode.cache.query.cq.internal.command.ExecuteCQ61.lambda$cmdExecute$0(ExecuteCQ61.java:138)
at java.lang.Iterable.forEach(Iterable.java:75)
at
java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080)
at
org.apache.geode.cache.query.cq.internal.command.ExecuteCQ61.cmdExecute(ExecuteCQ61.java:137)
at
org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:184)
```
The server is processing the ExecuteCQ61. It looks like it binds the Subject
in bindSubject, but later on it fails to find it.
Here is the exception on the server:
```
[warn 2021/09/15 12:55:30.563 PDT server1 <ServerConnection on port 59654
Thread 5> tid=0x4a] XXX ServerConnection.doNormalMessage about to bindSubject
command=ExecuteCQ61
[warn 2021/09/15 12:55:30.564 PDT server1 <ServerConnection on port 59654
Thread 5> tid=0x4a] XXX ServerConnection.bindSubject
command=org.apache.geode.cache.query.cq.internal.command.ExecuteCQ61;
uniqueId=8287195257237307674;
subject=org.apache.shiro.subject.support.DelegatingSubject@492e352e
[warn 2021/09/15 12:55:30.564 PDT server1 <ServerConnection on port 59654
Thread 5> tid=0x4a] XXX ServerConnection.doNormalMessage done bindSubject
command=ExecuteCQ61
[warn 2021/09/15 12:55:30.565 PDT server1 <ServerConnection on port 59654
Thread 5> tid=0x4a] XXX ExecuteCQ61.cmdExecute caught:
org.apache.geode.security.AuthenticationRequiredException: Failed to find
the authenticated user.
at
org.apache.geode.internal.security.IntegratedSecurityService.getSubject(IntegratedSecurityService.java:123)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:249)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:244)
at
org.apache.geode.internal.security.IntegratedSecurityService.authorize(IntegratedSecurityService.java:230)
at
org.apache.geode.cache.query.cq.internal.command.ExecuteCQ61.lambda$cmdExecute$0(ExecuteCQ61.java:138)
at java.lang.Iterable.forEach(Iterable.java:75)
at
java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080)
at
org.apache.geode.cache.query.cq.internal.command.ExecuteCQ61.cmdExecute(ExecuteCQ61.java:137)
at
org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:184)
at
org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMessage(ServerConnection.java:883)
at
org.apache.geode.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:1072)
at
org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1341)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.lambda$initializeServerConnectionThreadPool$3(AcceptorImpl.java:690)
at
org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:120)
at java.lang.Thread.run(Thread.java:745)
```
I do see that it depends on where I put the sleep.
If I put it in `CacheClientUpdater handleAuthenticate` on the client before
sending the `AuthenticateUserOp`, the test works fine.
If I put it in `PutUserCredentials cmdExecute` on the server before the
command is processed, the test fails.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]