Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 17534 invoked from network); 31 Mar 2008 14:54:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 31 Mar 2008 14:54:52 -0000 Received: (qmail 65613 invoked by uid 500); 31 Mar 2008 14:54:51 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 65562 invoked by uid 500); 31 Mar 2008 14:54:51 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 65551 invoked by uid 99); 31 Mar 2008 14:54:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 31 Mar 2008 07:54:51 -0700 X-ASF-Spam-Status: No, hits=-1999.6 required=10.0 tests=ALL_TRUSTED,SUBJECT_FUZZY_TION X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 31 Mar 2008 14:54:08 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id E0DCB234C0B4 for ; Mon, 31 Mar 2008 07:52:25 -0700 (PDT) Message-ID: <667983037.1206975145920.JavaMail.jira@brutus> Date: Mon, 31 Mar 2008 07:52:25 -0700 (PDT) From: "Alex Karasulu (JIRA)" To: dev@directory.apache.org Subject: [jira] Closed: (DIRSERVER-1047) Concurrency issuses in the nexus partition lead to race conditions with unbind requests on shutdown. In-Reply-To: <28940519.1188430350598.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DIRSERVER-1047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Karasulu closed DIRSERVER-1047. ------------------------------------ Resolution: Fixed http://svn.apache.org/viewvc?view=rev&revision=643009 Fixed. > Concurrency issuses in the nexus partition lead to race conditions with unbind requests on shutdown. > ---------------------------------------------------------------------------------------------------- > > Key: DIRSERVER-1047 > URL: https://issues.apache.org/jira/browse/DIRSERVER-1047 > Project: Directory ApacheDS > Issue Type: Bug > Reporter: Alex Karasulu > Assignee: Alex Karasulu > Fix For: 1.5.2 > > Attachments: ServerDNConstants.patch, ServerLdapContext.patch > > > Getting the following stack trace when there is a race condition with server shutdown and an unbind request which tries a getPartition when the partitionTree has been emptied out. > [21:34:13] ERROR [org.apache.directory.server.ldap.support.UnbindHandler] - failed to unbind session properly > org.apache.directory.shared.ldap.exception.LdapNameNotFoundException: uid=admin,ou=system > at org.apache.directory.server.core.partition.DefaultPartitionNexus.getPartition(DefaultPartitionNexus.java:1112) > at org.apache.directory.server.core.partition.DefaultPartitionNexus.unbind(DefaultPartitionNexus.java:773) > at org.apache.directory.server.core.interceptor.InterceptorChain$1.unbind(InterceptorChain.java:210) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain.unbind(InterceptorChain.java:794) > at org.apache.directory.server.core.partition.PartitionNexusProxy.unbind(PartitionNexusProxy.java:683) > at org.apache.directory.server.core.partition.PartitionNexusProxy.unbind(PartitionNexusProxy.java:700) > at org.apache.directory.server.core.jndi.ServerLdapContext.ldapUnbind(ServerLdapContext.java:210) > at org.apache.directory.server.ldap.support.UnbindHandler.messageReceived(UnbindHandler.java:58) > at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:141) > at org.apache.directory.server.ldap.LdapProtocolProvider$LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:428) > at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) > at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58) > at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:176) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) > at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220) > at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > [21:34:13] WARN [org.apache.directory.server.jndi.ServerContextFactory] - Failed to sent NoD. > java.lang.IllegalArgumentException: Address not bound: 0.0.0.0/0.0.0.0:10389 > at org.apache.mina.transport.socket.nio.SocketAcceptor.unbind(SocketAcceptor.java:200) > at org.apache.directory.server.jndi.ServerContextFactory.stopLDAP0(ServerContextFactory.java:727) > at org.apache.directory.server.jndi.ServerContextFactory.afterShutdown(ServerContextFactory.java:164) > at org.apache.directory.server.core.DefaultDirectoryService.shutdown(DefaultDirectoryService.java:305) > at org.apache.directory.server.core.DefaultDirectoryService$1.run(DefaultDirectoryService.java:218) > at java.lang.Thread.run(Thread.java:619) > [21:34:30] WARN [org.apache.directory.server.ldap.LdapProtocolProvider$LdapProtocolHandler] - [/127.0.0.1:59971] Unexpected exception from exceptionCaught handler. > java.util.concurrent.RejectedExecutionException > at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1759) > at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) > at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) > at org.apache.mina.filter.executor.ExecutorFilter.fireEvent(ExecutorFilter.java:101) > at org.apache.mina.filter.executor.ExecutorFilter.exceptionCaught(ExecutorFilter.java:204) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextExceptionCaught(AbstractIoFilterChain.java:345) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:53) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.exceptionCaught(AbstractIoFilterChain.java:643) > at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.exceptionCaught(AbstractIoFilterChain.java:494) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextExceptionCaught(AbstractIoFilterChain.java:345) > at org.apache.mina.common.support.AbstractIoFilterChain.fireExceptionCaught(AbstractIoFilterChain.java:334) > at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:228) > at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:181) > at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:44) > at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:448) > at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:39) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > [23:52:25] WARN [org.apache.directory.server.core.DefaultDirectoryService] - You didn't change the admin password of directory service instance 'default'. Please update the admin password as soon as possible to prevent a possible security breach. > [23:52:25] WARN [org.apache.directory.server.jndi.ServerContextFactory] - LDIF load directory '/home/ee/test.ldif' does not exist. No LDIF files will be loaded. > [23:56:17] WARN [org.apache.directory.server.ldap.support.AbandonHandler] - Got abandon request from client (SOCKET, R: /127.0.0.1:59628, L: /127.0.0.1:10389, S: 0.0.0.0/0.0.0.0:10389) but request must have already terminated. Abandon request org.apache.directory.shared.ldap.message.AbandonRequestImpl@1f270c27 had no effect. > [23:56:30] WARN [org.apache.directory.server.core.DefaultDirectoryService] - You didn't change the admin password of directory service instance 'default'. Please update the admin password as soon as possible to prevent a possible security breach. > [23:56:30] WARN [org.apache.directory.server.jndi.ServerContextFactory] - LDIF load directory '/home/ee/ldif' does not exist. No LDIF files will be loaded. > [23:59:34] ERROR [org.apache.directory.server.ldap.support.UnbindHandler] - failed to unbind session properly > org.apache.directory.shared.ldap.exception.LdapNameNotFoundException: uid=admin,ou=system > at org.apache.directory.server.core.partition.DefaultPartitionNexus.getPartition(DefaultPartitionNexus.java:1112) > at org.apache.directory.server.core.partition.DefaultPartitionNexus.unbind(DefaultPartitionNexus.java:773) > at org.apache.directory.server.core.interceptor.InterceptorChain$1.unbind(InterceptorChain.java:210) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.unbind(InterceptorChain.java:1412) > at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind(BaseInterceptor.java:228) > at org.apache.directory.server.core.interceptor.InterceptorChain.unbind(InterceptorChain.java:794) > at org.apache.directory.server.core.partition.PartitionNexusProxy.unbind(PartitionNexusProxy.java:683) > at org.apache.directory.server.core.partition.PartitionNexusProxy.unbind(PartitionNexusProxy.java:700) > at org.apache.directory.server.core.jndi.ServerLdapContext.ldapUnbind(ServerLdapContext.java:210) > at org.apache.directory.server.ldap.support.UnbindHandler.messageReceived(UnbindHandler.java:58) > at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:141) > at org.apache.directory.server.ldap.LdapProtocolProvider$LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:428) > at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) > at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58) > at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:176) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) > at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220) > at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.