We are seeing
a NPE in the allocateConnection() method of SharedLocalConnectionManager only on
SMP boxes under load. The We have a unique environment
with connection pooling from 2.4.4 and the server from 2.4.2. The
connection object from con = (ManagedConnection)pool.getObject(new
ConnectionParameters(subj, info)) is NULL which
shouldn't be.
Has anyone
seen this and is there a fix? I found no references in mailing lists (user
and dev) nor in bug database. I have an environment setup currently and
can dump some objects in JDB if someone can tell me what they'd like to
see. Below is the pertinent
info from JDB.
Thanks for any
assistance,
Quentin
--
stop in
org.jboss.pool.connector.SharedLocalConnectionManager.dummy
Thread-24[1] where
[1] org.jboss.pool.connector.SharedLocalConnectionManager.dummy (SharedLocalConnectionManager.java:142)
[2] org.jboss.pool.connector.SharedLocalConnectionManager.allocateConnection (SharedLocalConnectionManager.java:98)
[3] org.jboss.pool.connector.jdbc.JDBCDataSource.getConnection (JDBCDataSource.java:55)
[4] com.coremetrics.util.DBConnectionFactory.getConnection (DBConnectionFactory.java:178)
[5] com.coremetrics.util.DBConnectionFactory.getConnection (DBConnectionFactory.java:159)
[6] com.coremetrics.util.DBConnectionFactory.getConnection (DBConnectionFactory.java:135)
[7] com.coremetrics.util.DBConnectionFactory.getConnection (DBConnectionFactory.java:90)
[8] com.coremetrics.security.LoginBean.createSessionState (LoginBean.java:269)
[9] java.lang.reflect.Method.invoke (native method)
[10] org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke (StatelessSessionContainer.java:543)
[11] org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke (StatelessSessionInstanceInterceptor.java:87)
[12] org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext (TxInterceptorCMT.java:133)
[13] org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions (TxInterceptorCMT.java:307)
[14] org.jboss.ejb.plugins.TxInterceptorCMT.invoke (TxInterceptorCMT.java:99)
[15] org.jboss.ejb.plugins.SecurityInterceptor.invoke (SecurityInterceptor.java:128)
[16] org.jboss.ejb.plugins.LogInterceptor.invoke (LogInterceptor.java:195)
[17] org.jboss.ejb.StatelessSessionContainer.invoke (StatelessSessionContainer.java:286)
[18] org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke (JRMPContainerInvoker.java:483)
[19] org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer (GenericProxy.java:335)
[20] org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke (StatelessSessionProxy.java:123)
[21] $Proxy10.createSessionState ()
[22] com.coremetrics.servlet.LoginServ$LoginValidator.<init> (LoginServ.java:729)
[23] com.coremetrics.servlet.LoginServ.attemptLogin (LoginServ.java:269)
[24] com.coremetrics.servlet.LoginServ.doPost (LoginServ.java:339)
[25] javax.servlet.http.HttpServlet.service (HttpServlet.java:760)
[26] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
[27] org.apache.tomcat.core.ServletWrapper.doService (ServletWrapper.java:405)
[28] org.apache.tomcat.core.Handler.service (Handler.java:287)
[29] org.apache.tomcat.core.ServletWrapper.service (ServletWrapper.java:372)
[30] org.apache.tomcat.core.ContextManager.internalService (ContextManager.java:812)
[31] org.apache.tomcat.core.ContextManager.service (ContextManager.java:758)
[32] org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection (Ajp12ConnectionHandler.java:166)
[33] org.apache.tomcat.service.TcpWorkerThread.runIt (PoolTcpEndpoint.java:416)
[34] org.apache.tomcat.util.ThreadPool$ControlRunnable.run (ThreadPool.java:501)
[35] java.lang.Thread.run (Thread.java:484)
Thread-24[1] list
138
139 private void dummy() {
140 int i;
141
142 => i = 0;
143 i++;
144
145 }
146
147 /**
Thread-24[1] up
Thread-24[2] list
94 con = (ManagedConnection)pool.getObject(new ConnectionParameters(subj, info));
95 }
96
97 if (con == null) {
98 => dummy();
99 }
100
101 // Register the connection with the Tx Cache & the Transaction
102 ConnectionListener listener = null;
103 if(trans != null) {
Thread-24[2] locals
Method arguments:
factory = instance of org.jboss.pool.connector.jdbc.JDBCManagedConnectionFactory(id=2301)
info = null
Local variables:
trans = instance of org.jboss.tm.TransactionImpl(id=2302)
subj = instance of javax.security.auth.Subject(id=2303)
pool = instance of org.jboss.pool.ObjectPool(id=2304)
txCache = null
con = null
Thread-24[2]
--
Quentin Conner
[EMAIL PROTECTED]
(512) 342-2623 x2206
--
Quentin
Conner
[EMAIL PROTECTED]
(512) 342-2623 x2206
