Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Invalid
    • Affects Version/s: 3.1.1
    • Fix Version/s: None
    • Component/s: jms
    • Labels:
      None
    • Environment:

      AIX
      IBM jdk1.6.0

      Description

      OS: AIX
      build: v311 build 06
      We have three AIX machines with the following setup:
      machineA: DAS + 3 instances
      machineB: 4 instances
      machineC: 3 instances

      Please note that the bug is only seen on AIX. The test passed on Linux and Solaris.

      Steps to reproduce the bug:

      1. install GF on the system and create a domain st-comain, start it.
      2. create a cluster st-cluster, create nodes for each machine (3 machines)
      3. create instances as described on the top for the st-cluster on each machine
      4. set the JMS service type to LOCAL for the cluster
      5. cp mysql-connector-java-5.1.13-bin.jar to
      /export/sonia/hatest/v3/glassfishv3/glassfish/lib dir
      6. Modify glassfishv3/mq/etc/imqenv.config file to make the following variable to point to the mysql driver location.
      IMQ_DEFAULT_EXT_JARS
      7. run asadmin configure-jms-cluster command to setup JMS HA cluster
      8. Start cluster. I ran a HA/MQ Queue test case, it passed. Then I tried to run a HA/MQ topic test case and it failed. The following exception displayed in server.log:
      [#|2011-06-03T14:44:54.087-0700|WARNING|glassfish3.1|javax.enterprise.system.container.web.com.sun.enterprise.web._vs.server|_ThreadID=36;_ThreadName=Thread-22;|StandardWrapperValve[MDBClientServlet]: PWC1406: Servlet.service() for servlet MDBClientServlet threw exception
      javax.jms.JMSException: MQRA:CFA:allocation failure:createTopicConnection:Error in allocating a connection. Cause: MQRA:MC:InvalidClientIDException-[C4052]: Client ID is already in use - xyzabcd123 user=admin, broker=aixas10.us.oracle.com:27676(53255)
      at com.sun.appserver.ee.tests.MDBClientServlet.initPublish(Unknown Source)
      at com.sun.appserver.ee.tests.MDBClientServlet.processRequest(Unknown Source)
      at com.sun.appserver.ee.tests.MDBClientServlet.doGet(Unknown Source)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
      at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
      at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
      at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
      at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
      at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
      at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
      at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
      at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
      at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
      at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
      at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
      at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
      at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
      at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
      at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
      at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
      at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
      at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
      at java.lang.Thread.run(Thread.java:736)

      #]
      – full server.log is attached.

        Activity

        Hide
        Satish Kumar added a comment -
        • Why fix this issue in 3.1.1?
          This issue is related to AIX which is a key release driver for 3.1.1
        • Which is the targeted build of 3.1.1 for this fix?
          Build 10
        • Do regression tests exist for this issue?
          The standard JMS tests should suffice.
        • Which tests should QA (re)run to verify the fix did not destabilize GlassFish?
          JMS SQE tests.
        Show
        Satish Kumar added a comment - Why fix this issue in 3.1.1? This issue is related to AIX which is a key release driver for 3.1.1 Which is the targeted build of 3.1.1 for this fix? Build 10 Do regression tests exist for this issue? The standard JMS tests should suffice. Which tests should QA (re)run to verify the fix did not destabilize GlassFish? JMS SQE tests.
        Hide
        scatari added a comment -

        Approved for 3.1.1.

        Show
        scatari added a comment - Approved for 3.1.1.
        Hide
        Satish Kumar added a comment -

        This appears to be a test issue rather than a bug.

        Durable subscriptions impose the restriction of allowing only a single connection to be open at any given time and a unique clientId is configured for each connection pool.

        There are two issues with the test:

        Firstly, the test application has the steady-pool-size = 1 and the max-pool-size to be 250. The max-pool-size should also be 1 when using durable subscriptions.

        Secondly, MDBClientServlet opens a connection in initPublish and closes this only in destroy. Multiple requests to this servlet will lead to opening of multiple connections and this will result in the expected behavior of throwing the exception reported in the log since the connections will use the same clientId which is not allowed

        [#|2011-06-03T14:44:54.087-0700|WARNING|glassfish3.1| javax. enterprise.system.container.web.com.sun.enterprise.web._vs.server| _ThreadID=36;_ThreadName=Thread-22;| StandardWrapperValve[MDBClientServlet]: PWC1406: Servlet.service() for servlet MDBClientServlet threw exception
        javax.jms.JMSException: MQRA:CFA:allocation failure:createTopicConnection:Error in allocating a connection. Cause: MQRA:MC:InvalidClientIDException-[C4052]: Client ID is already in use - xyzabcd123 user=admin, broker=aixas10.us.oracle.com: 27676(53255)
        at com.sun.appserver.ee.tests.MDBClientServlet.initPublish(Unknown Source)
        at com.sun.appserver.ee.tests.MDBClientServlet.processRequest(Unknown Source)

        Show
        Satish Kumar added a comment - This appears to be a test issue rather than a bug. Durable subscriptions impose the restriction of allowing only a single connection to be open at any given time and a unique clientId is configured for each connection pool. There are two issues with the test: Firstly, the test application has the steady-pool-size = 1 and the max-pool-size to be 250. The max-pool-size should also be 1 when using durable subscriptions. Secondly, MDBClientServlet opens a connection in initPublish and closes this only in destroy. Multiple requests to this servlet will lead to opening of multiple connections and this will result in the expected behavior of throwing the exception reported in the log since the connections will use the same clientId which is not allowed [#|2011-06-03T14:44:54.087-0700|WARNING|glassfish3.1| javax. enterprise.system.container.web.com.sun.enterprise.web._vs.server| _ThreadID=36;_ThreadName=Thread-22;| StandardWrapperValve [MDBClientServlet] : PWC1406: Servlet.service() for servlet MDBClientServlet threw exception javax.jms.JMSException: MQRA:CFA:allocation failure:createTopicConnection:Error in allocating a connection. Cause: MQRA:MC:InvalidClientIDException- [C4052] : Client ID is already in use - xyzabcd123 user=admin, broker=aixas10.us.oracle.com: 27676(53255) at com.sun.appserver.ee.tests.MDBClientServlet.initPublish(Unknown Source) at com.sun.appserver.ee.tests.MDBClientServlet.processRequest(Unknown Source)

          People

          • Assignee:
            Satish Kumar
            Reporter:
            sonialiu
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: