[ 
https://issues.apache.org/jira/browse/ARTEMIS-4130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678830#comment-17678830
 ] 

Timothy A. Bish edited comment on ARTEMIS-4130 at 1/19/23 6:04 PM:
-------------------------------------------------------------------

[~jbertram] I'm not terribly familiar with the broker code anymore either but 
given the case describe a scenario where the open is expected to fail due to 
server login configuration then continuing to process the frames beyond open 
doesn't make a ton of sense.  The processing of the events from proton should 
be such that you could set some state to indicate if the events should continue 
to be processed if the open handler fails just sort of depends on how it is 
handled these days. 


was (Author: tabish121):
[~jbertram] I'm terribly familiar with the broker code anymore either but given 
the case describe a scenario where the open is expected to fail due to server 
login configuration then continuing to process the frames beyond open doesn't 
make a ton of sense.  The processing of the events from proton should be such 
that you could set some state to indicate if the events should continue to be 
processed if the open handler fails just sort of depends on how it is handled 
these days. 

> failed amqp connect attempt leads to 3 stack traces in log
> ----------------------------------------------------------
>
>                 Key: ARTEMIS-4130
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4130
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.27.1
>            Reporter: Erwin Dondorp
>            Priority: Major
>
> context:
> * server login.conf allows only "PropertiesLoginModule required" (i.e. 
> username+password only)
> * client is using AMQP with Python Proton library
> * client is connecting anonymously to this server
> the connect attempt is supposed to fail because it is trying anonymous login 
> on a server that does not allow that. but that is not the problem.
> instead of a simple rejected login, this results in 3 stack traces in the 
> artemis server logfile per connect attempt. the client still gets its 
> rejection, but in the form of a "amqp:internal-error / Unrecoverable error: 
> NullPointerException".
> this is the log for a single connect attempt:
> {noformat}
> 2023-01-15 12:46:35,847 WARN  [org.apache.activemq.artemis.core.server] 
> AMQ222216: Security problem while authenticating: AMQ229031: Unable to 
> validate user from /10.11.1.3:62895. Username: null; SSL certificate subject 
> DN: unavailable
> 2023-01-15 12:46:35,847 WARN  
> [org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext] 
> AMQ229031: Unable to validate user from /10.11.1.3:62895. Username: null; SSL 
> certificate subject DN: unavailable
> org.apache.activemq.artemis.api.core.ActiveMQSecurityException: AMQ229031: 
> Unable to validate user from /10.11.1.3:62895. Username: null; SSL 
> certificate subject DN: unavailable
>         at 
> org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticationFailed(SecurityStoreImpl.java:360)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:189)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.validateUser(ActiveMQServerImpl.java:1744)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.validateUser(AMQPConnectionContext.java:595)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onRemoteOpen(AMQPConnectionContext.java:553)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:32)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:565)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:361)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:318)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:242)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:134)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:691)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>  ~[artemis-core-client-2.27.1.jar:2.27.1]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
>  ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.27.1.jar:?]
> 2023-01-15 12:46:35,848 WARN  [org.apache.activemq.artemis.core.server] 
> AMQ222216: Security problem while authenticating: AMQ229031: Unable to 
> validate user from /10.11.1.3:62895. Username: null; SSL certificate subject 
> DN: unavailable
> 2023-01-15 12:46:35,848 WARN  
> [org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler] 
> AMQ229031: Unable to validate user from /10.11.1.3:62895. Username: null; SSL 
> certificate subject DN: unavailable
> org.apache.activemq.artemis.api.core.ActiveMQSecurityException: AMQ229031: 
> Unable to validate user from /10.11.1.3:62895. Username: null; SSL 
> certificate subject DN: unavailable
>         at 
> org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticationFailed(SecurityStoreImpl.java:360)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:189)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.validateUser(ActiveMQServerImpl.java:1744)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createSession(ActiveMQServerImpl.java:1724)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.init(AMQPSessionCallback.java:207)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPSessionContext.initialize(AMQPSessionContext.java:86)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onRemoteOpen(AMQPConnectionContext.java:691)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:50)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:565)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:361)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:318)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:242)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:134)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:691)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>  ~[artemis-core-client-2.27.1.jar:2.27.1]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
>  ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.27.1.jar:?]
> 2023-01-15 12:46:35,849 WARN  
> [org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler] null
> java.lang.NullPointerException: null
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.getAddress(AMQPSessionCallback.java:724)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.getRoutingType(ProtonServerReceiverContext.java:169)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.initialize(ProtonServerReceiverContext.java:119)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPSessionContext.addReceiver(AMQPSessionContext.java:256)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.remoteLinkOpened(AMQPConnectionContext.java:391)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onRemoteOpen(AMQPConnectionContext.java:712)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:68)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:565)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:361)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:318)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:242)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:134)
>  ~[artemis-amqp-protocol-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:691)
>  ~[artemis-server-2.27.1.jar:2.27.1]
>         at 
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>  ~[artemis-core-client-2.27.1.jar:2.27.1]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
>  ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) 
> ~[netty-transport-classes-epoll-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.27.1.jar:?]
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to