Alex O'Ree created JUDDI-969: -------------------------------- Summary: Derby dead lock Key: JUDDI-969 URL: https://issues.apache.org/jira/browse/JUDDI-969 Project: jUDDI Issue Type: Bug Affects Versions: 3.3.3 Reporter: Alex O'Ree Priority: Minor
Not super sure what caused this, but it's not consistently reproducible. Logging as informational only eb 11, 2017 3:41:04 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging WARNING: Application {urn:uddi-org:api_v3_portType}UDDIInquiryService#{urn:uddi-org:api_v3_portType}get_bindingDetail has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unable to obtain an object lock on "null". at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:170) at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:272) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:136) at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:237) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:69) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: <openjpa-2.3.0-r422266:1540826 nonfatal store error> org.apache.openjpa.persistence.OptimisticLockException: Unable to obtain an object lock on "null". at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4956) at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4934) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:116) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:68) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:688) at org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:117) at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78) at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:3108) at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:3188) at org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java:1653) at org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerImpl.java:1586) at org.apache.juddi.model.BindingTemplate.getBusinessService(BindingTemplate.java) at org.apache.juddi.mapping.MappingModelToApi.mapBindingTemplate(MappingModelToApi.java:691) at org.apache.juddi.api.impl.UDDIInquiryImpl.getBindingDetail(UDDIInquiryImpl.java:397) at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104) ... 39 more Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is: Lock : ROW, J3_UDDI_ENTITY, (9,14) Waiting XID : {6379, S} , APP, SELECT t2.entity_key, t1.entity_key, t2.authorized_name, t2.created, t2.xfer, t2.modified, t2.modified_including_children, t2.node_id, t1.business_key FROM j3_binding_template t0 INNER JOIN j3_business_service t1 ON t0.service_key = t1.entity_key INNER JOIN j3_uddi_entity t2 ON t1.entity_key = t2.entity_key WHERE t0.entity_key = ? Granted XID : {6372, X} Lock : ROW, J3_BINDING_TEMPLATE, (1,34) Waiting XID : {6372, X} , APP, DELETE FROM j3_binding_template WHERE entity_key = ? Granted XID : {6379, S} . The selected victim is XID : 6379. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207) at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207) at org.apache.openjpa.lib.jdbc.DelegatingResultSet.next(DelegatingResultSet.java:109) at org.apache.openjpa.jdbc.sql.ResultSetResult.nextInternal(ResultSetResult.java:222) at org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.nextInternal(SelectImpl.java:2447) at org.apache.openjpa.jdbc.sql.AbstractResult.next(AbstractResult.java:175) at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.load(RelationFieldStrategy.java:838) at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:934) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:681) ... 53 more Caused by: java.sql.SQLException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is: Lock : ROW, J3_UDDI_ENTITY, (9,14) Waiting XID : {6379, S} , APP, SELECT t2.entity_key, t1.entity_key, t2.authorized_name, t2.created, t2.xfer, t2.modified, t2.modified_including_children, t2.node_id, t1.business_key FROM j3_binding_template t0 INNER JOIN j3_business_service t1 ON t0.service_key = t1.entity_key INNER JOIN j3_uddi_entity t2 ON t1.entity_key = t2.entity_key WHERE t0.entity_key = ? Granted XID : {6372, X} Lock : ROW, J3_BINDING_TEMPLATE, (1,34) Waiting XID : {6372, X} , APP, DELETE FROM j3_binding_template WHERE entity_key = ? Granted XID : {6379, S} . The selected victim is XID : 6379. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 71 more Caused by: ERROR 40001: A lock could not be obtained due to a deadlock, cycle of locks and waiters is: Lock : ROW, J3_UDDI_ENTITY, (9,14) Waiting XID : {6379, S} , APP, SELECT t2.entity_key, t1.entity_key, t2.authorized_name, t2.created, t2.xfer, t2.modified, t2.modified_including_children, t2.node_id, t1.business_key FROM j3_binding_template t0 INNER JOIN j3_business_service t1 ON t0.service_key = t1.entity_key INNER JOIN j3_uddi_entity t2 ON t1.entity_key = t2.entity_key WHERE t0.entity_key = ? Granted XID : {6372, X} Lock : ROW, J3_BINDING_TEMPLATE, (1,34) Waiting XID : {6372, X} , APP, DELETE FROM j3_binding_template WHERE entity_key = ? Granted XID : {6379, S} . The selected victim is XID : 6379. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown Source) at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source) at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source) at org.apache.derby.impl.store.raw.xact.RowLocking2.lockRecordForRead(Unknown Source) at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source) at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(Unknown Source) at org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(Unknown Source) at org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown Source) at org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown Source) at org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.NestedLoopJoinResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(Unknown Source) ... 64 more -- This message was sent by Atlassian JIRA (v6.3.15#6346)