arindam-bandyopadhyay / issue-test

0 stars 0 forks source link

WAS-ActiveMQ integration: ConnectionAdapter is not really thread safe. #23

Closed arinban closed 6 years ago

arinban commented 6 years ago

The cleanup code in MC, when executed in WAS, seems to crash into a piece of code that is not really executed in Sun appserver. The code in question is not thread safe. Resulting exception trace is shown below.

[2/9/06 14:23:17:844 PST] 00000066 genericjmsra 3 [AbstractMCF]

equals

  • final: true [2/9/06 14:23:17:804 PST] 00000051 MCWrapper E J2CA0081E: Method cleanup failed while trying to execute method cleanup on

ManagedConnection

Physical Session -> nullPhysical Connection

XAQueueConnection[ClientId=null

Connected=tcp://localhost:7222, URL=tcp://localhost:7222]Super -> com.sun.genericra.outbound.ManagedConnection@2e7c1a49 from resource jms/helloQCF. Caught exception: java.util.ConcurrentModificationException at

java.util.AbstractList$Itr.checkForComodification(AbstractList.java(Inlined

Compiled Code)) at java.util.AbstractList$Itr.remove(AbstractList.java(Compiled Code)) at

com.sun.genericra.outbound.ConnectionHandle.cleanup(ConnectionHandle.java:234)

at

com.sun.genericra.outbound.ManagedConnection.cleanup(ManagedConnection.java:182)

at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1343) at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:447) at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1511) at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1945) at

com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletion(LocalTransactionWrapper.java:1130)

at

com.ibm.ws.LocalTransaction.LocalTranCoordImpl.informSynchronizations(LocalTranCoordImpl.java:1486)

at

com.ibm.ws.LocalTransaction.LocalTranCoordImpl.complete(LocalTranCoordImpl.java:890)

at

com.ibm.ws.LocalTransaction.LocalTranCoordImpl.complete(LocalTranCoordImpl.java:720)

at

com.ibm.ws.LocalTransaction.LocalTranCurrentImpl.complete(LocalTranCurrentImpl.java:388)

at

com.ibm.ws.LocalTransaction.LocalTranCurrentSet.complete(LocalTranCurrentSet.java:191)

at

com.ibm.ws.webservices.engine.transport.TransactionSuspender.commitLocalTransaction(TransactionSuspender.java:172)

at

ejbs.ActiveMQSessionBean.sendRecvJMSMessageMultipleSuspends(ActiveMQSessionBean.java:477)

at

ejbs.EJSLocalStatelessActiveMQSession_036382fc.sendRecvJMSMessageMultipleSuspends(EJSLocalStatelessActiveMQSession_036382fc.java:297)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled

Code)) at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled

Code)) at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled

Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at

com.ibm.etools.utc.model.ReflectionMethodModel.invoke(ReflectionMethodModel.java:65)

at com.ibm.etools.utc.servlet.InvokeServlet.invoke(InvokeServlet.java:111) at com.ibm.etools.utc.servlet.InvokeServlet.doPost(InvokeServlet.java:367) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at

com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282)

at

com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:673)

at

com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:80)

at

com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1804)

at

com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:84)

at

com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:469)

at

com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:408)

at

com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101)

at

com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)

at

com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)

at

com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)

at

com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1455)

Environment

Operating System: All Platform: All

Affected Versions

[0.9]

arinban commented 6 years ago

Original Issue:https://github.com/javaee/glassfish-genericjmsra/issues/16 Raised By:@glassfishrobot Created at:Mon Mar 06 07:41:25 IST 2006 Assigned To:@glassfishrobot

arinban commented 6 years ago

@glassfishrobot Commented on Mon Mar 06 07:41:25 IST 2006 Reported by binod

arinban commented 6 years ago

@glassfishrobot Commented on Mon Mar 06 08:19:48 IST 2006 binod said: Instead of using iterator, the cleanup code now uses an array to scan all the open sessions. It then closes all open sessions. So, the code should be okay now for thread safety. I will need some help to tes the WAS-ActiveMQ combination. Planning to send an e-mail to the folks who reported this.

arinban commented 6 years ago

@glassfishrobot Commented on Wed Mar 15 05:47:05 IST 2006 @sivakumart said: fixed in milestone 1.6

arinban commented 6 years ago

@glassfishrobot Commented on Mon Mar 06 07:41:25 IST 2006 Was assigned to binod

arinban commented 6 years ago

@glassfishrobot Commented on Mon Apr 24 13:01:40 IST 2017 This issue was imported from java.net JIRA GENERICJMSRA-16

arinban commented 6 years ago

@glassfishrobot Commented on Mon Sep 06 08:51:08 IST 2010 Marked as fixed on Sunday, September 5th 2010, 8:21:08 pm

arinban commented 6 years ago

@glassfishrobot Closed the issue on Mon Sep 06 08:51:08 IST 2010