Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6652

Warning when stopping a server with a deployed MDB listening to a topic

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Minor Minor
    • 10.1.0.CR1, 10.1.0.Final
    • 10.0.0.Final
    • JMS
    • None

      How to reproduce:

      • start WildFly with ActiveMQ security for in-vm (override-in-vm-security=false) and a pooled-connection-factory with user credentials (see attached configuration)
      • deploy the regular helloworld-mdb quickstart
      • stop WildFly (with Ctl+C)

      The server logs a warning:

      17:48:54,217 WARN  [org.apache.activemq.artemis.core.server] (Thread-6 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=1c98f514-2290-11e6-a581-c1ccabba71e3-1850673655-879332228)) Sending unexpected exception to the client: java.lang.IllegalArgumentException: No PolicyContextHandler for key=javax.security.auth.Subject.container
              at javax.security.jacc.PolicyContext.getContext(PolicyContext.java:96)
              at org.jboss.security.plugins.SubjectActions$GetSubjectAction.run(SubjectActions.java:90)
              at org.jboss.security.plugins.SubjectActions$GetSubjectAction.run(SubjectActions.java:82)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.jboss.security.plugins.SubjectActions.getActiveSubject(SubjectActions.java:316)
              at org.jboss.security.plugins.JBossAuthorizationManager.getCurrentRoles(JBossAuthorizationManager.java:331)
              at org.jboss.security.plugins.JBossAuthorizationManager.doesUserHaveRole(JBossAuthorizationManager.java:148)
              at org.wildfly.extension.messaging.activemq.WildFlySecurityManager$1.run(WildFlySecurityManager.java:105)
              at org.wildfly.extension.messaging.activemq.WildFlySecurityManager$1.run(WildFlySecurityManager.java:78)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.wildfly.extension.messaging.activemq.WildFlySecurityManager.validateUserAndRole(WildFlySecurityManager.java:78)
              at org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.check(SecurityStoreImpl.java:162)
              at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1272)
              at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1243)
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.deleteQueue(ServerSessionImpl.java:598)
              at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:244)
              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:626)
              at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:349)
              at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:331)
              at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:616)
              at org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:171)
              at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
      

      When the server is stopped, ActiveMQ RA will attempt to destroy the core queue corresponding to the MDB listening on the JMS topic.
      On the broker side, the exception occurs because there is no dependency between the pooled-connection-factory's service and the boostrap security service that handles the javax.security.auth.Subject.container context.

            jmesnil1@redhat.com Jeff Mesnil
            jmesnil1@redhat.com Jeff Mesnil
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: