You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2013/06/20 11:39:21 UTC

[jira] [Resolved] (DIRSERVER-1863) ApacheDS 2.0.0M12 in production, getting ERR_554 double get for block 0

     [ https://issues.apache.org/jira/browse/DIRSERVER-1863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny resolved DIRSERVER-1863.
------------------------------------------

    Resolution: Duplicate

As a matter of fact, we just fixed a huge bug in the server yesterday, which was producing the exact same error than he one you posted.

Bottom line, we had some conflict when some search was conducted when some modify operation was done at the very same time, due to a wrong usage of some locks.

We are cutting a new release today.

Thanks for the report.
                
> ApacheDS 2.0.0M12 in production, getting ERR_554 double get for block 0
> -----------------------------------------------------------------------
>
>                 Key: DIRSERVER-1863
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1863
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M12
>         Environment: RedHat 5.8
> java version "1.6.0_45"
> Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
> Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
>            Reporter: Slavomir Kocka
>            Priority: Blocker
>
> Clean installation of ApacheDS we use together with Websphere Application Server 8.0.0.4...
> After one day of intensive testing, we got error, which broke partition. Server was unable to respond, and after restart, it was unable start again... We have also mirror LDAP... Comparing broken vs correct LDAP, master.lg on broken has 294 bytes, and on correct 123377231 bytes.
> Stacktrace from log, when error occured:
> [09:36:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:36:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Unexpected exception forcing session to close: sending disconnect notice to client.
> java.lang.Error: ERR_554 double get for block 0
> 	at jdbm.recman.RecordFile.get(RecordFile.java:185)
> 	at jdbm.recman.PhysicalRowIdManager.fetch(PhysicalRowIdManager.java:159)
> 	at jdbm.recman.BaseRecordManager.fetch(BaseRecordManager.java:323)
> 	at jdbm.recman.BaseRecordManager.fetch(BaseRecordManager.java:299)
> 	at jdbm.recman.BaseRecordManager.getNameDirectory(BaseRecordManager.java:451)
> 	at jdbm.recman.BaseRecordManager.getNamedObject(BaseRecordManager.java:379)
> 	at jdbm.recman.CacheRecordManager.getNamedObject(CacheRecordManager.java:377)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.sync(JdbmTable.java:959)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.commit(JdbmTable.java:1169)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.remove(JdbmTable.java:810)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmIndex.drop(JdbmIndex.java:435)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmIndex.drop(JdbmIndex.java:59)
> 	at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.updateRdnIdx(AbstractBTreePartition.java:890)
> 	at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.add(AbstractBTreePartition.java:765)
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.add(DefaultPartitionNexus.java:385)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor$1.add(BaseInterceptor.java:158)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.trigger.TriggerInterceptor.add(TriggerInterceptor.java:300)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.event.EventInterceptor.add(EventInterceptor.java:220)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.subtree.SubentryInterceptor.add(SubentryInterceptor.java:1011)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.collective.CollectiveAttributeInterceptor.add(CollectiveAttributeInterceptor.java:134)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.operational.OperationalAttributeInterceptor.add(OperationalAttributeInterceptor.java:252)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.schema.SchemaInterceptor.add(SchemaInterceptor.java:1095)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.hash.PasswordHashingInterceptor.add(PasswordHashingInterceptor.java:84)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.exception.ExceptionInterceptor.add(ExceptionInterceptor.java:188)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.admin.AdministrativePointInterceptor.add(AdministrativePointInterceptor.java:1201)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.authz.AciAuthorizationInterceptor.add(AciAuthorizationInterceptor.java:516)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.referral.ReferralInterceptor.add(ReferralInterceptor.java:249)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.authn.AuthenticationInterceptor.add(AuthenticationInterceptor.java:392)
> 	at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:412)
> 	at org.apache.directory.server.core.normalization.NormalizationInterceptor.add(NormalizationInterceptor.java:127)
> 	at org.apache.directory.server.core.DefaultOperationManager.add(DefaultOperationManager.java:373)
> 	at org.apache.directory.server.core.shared.DefaultCoreSession.add(DefaultCoreSession.java:218)
> 	at org.apache.directory.server.core.shared.DefaultCoreSession.add(DefaultCoreSession.java:202)
> 	at org.apache.directory.server.ldap.handlers.request.AddRequestHandler.handle(AddRequestHandler.java:57)
> 	at org.apache.directory.server.ldap.handlers.request.AddRequestHandler.handle(AddRequestHandler.java:39)
> 	at org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:207)
> 	at org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56)
> 	at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:221)
> 	at org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:217)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:690)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
> 	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
> 	at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
> 	at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
> 	at org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.runTask(UnorderedThreadPoolExecutor.java:474)
> 	at org.apache.mina.filter.executor.UnorderedThreadPoolExecutor$Worker.run(UnorderedThreadPoolExecutor.java:428)
> 	at java.lang.Thread.run(Thread.java:662)
> [09:36:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:36:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:37:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:38:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:38:43] ERROR [org.apache.directory.server.core.authn.AbstractAuthenticator] - ERR_6 Authentication error : null
> [09:39:26] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [09:39:32] ERROR [org.apache.directory.server.core.authn.AbstractAuthenticator] - ERR_6 Authentication error : null
> [09:40:05] ERROR [org.apache.directory.server.core.authn.AbstractAuthenticator] - ERR_6 Authentication error : null
> [09:40:27] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> After stopping and starting server log contains following:
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Unexpected exception forcing session to close: sending disconnect notice to client.
> java.io.IOException: Connection reset by peer
> 	at sun.nio.ch.FileDispatcher.read0(Native Method)
> 	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> 	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> 	at sun.nio.ch.IOUtil.read(IOUtil.java:171)
> 	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> 	at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:273)
> 	at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:690)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124)
> 	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 	at java.lang.Thread.run(Thread.java:662)
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Unexpected exception forcing session to close: sending disconnect notice to client.
> java.io.IOException: Connection reset by peer
> 	at sun.nio.ch.FileDispatcher.read0(Native Method)
> 	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> 	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> 	at sun.nio.ch.IOUtil.read(IOUtil.java:171)
> 	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> 	at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:273)
> 	at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:690)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124)
> 	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 	at java.lang.Thread.run(Thread.java:662)
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [10:03:50] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Null LdapSession given to cleanUpSession.
> [10:03:51] ERROR [org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition] - ERR_124 Failed to close an index.
> java.lang.Error: ERR_554 double get for block 0
> 	at jdbm.recman.RecordFile.get(RecordFile.java:185)
> 	at jdbm.recman.PhysicalRowIdManager.fetch(PhysicalRowIdManager.java:159)
> 	at jdbm.recman.BaseRecordManager.fetch(BaseRecordManager.java:323)
> 	at jdbm.recman.BaseRecordManager.fetch(BaseRecordManager.java:299)
> 	at jdbm.recman.BaseRecordManager.getNameDirectory(BaseRecordManager.java:451)
> 	at jdbm.recman.BaseRecordManager.getNamedObject(BaseRecordManager.java:379)
> 	at jdbm.recman.CacheRecordManager.getNamedObject(CacheRecordManager.java:377)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.sync(JdbmTable.java:959)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.close(JdbmTable.java:948)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmIndex.close(JdbmIndex.java:664)
> 	at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.doDestroy(AbstractBTreePartition.java:474)
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition.doDestroy(JdbmPartition.java:473)
> 	at org.apache.directory.server.core.api.partition.AbstractPartition.destroy(AbstractPartition.java:125)
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.removeContextPartition(DefaultPartitionNexus.java:909)
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.doDestroy(DefaultPartitionNexus.java:278)
> 	at org.apache.directory.server.core.api.partition.AbstractPartition.destroy(AbstractPartition.java:125)
> 	at org.apache.directory.server.core.DefaultDirectoryService.shutdown(DefaultDirectoryService.java:1313)
> 	at org.apache.directory.server.ApacheDsService.stop(ApacheDsService.java:593)
> 	at org.apache.directory.server.wrapper.ApacheDsTanukiWrapper.stop(ApacheDsTanukiWrapper.java:97)
> 	at org.tanukisoftware.wrapper.WrapperManager$13.run(WrapperManager.java:3134)
> [10:03:51] WARN [org.apache.directory.server.core.shared.partition.DefaultPartitionNexus] - Failed to destroy a partition: 2.5.4.11=ivisiam
> org.apache.directory.api.ldap.model.exception.LdapOperationErrorException: ERR_577 Errors encountered on destroy()
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.removeContextPartition(DefaultPartitionNexus.java:913)
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.doDestroy(DefaultPartitionNexus.java:278)
> 	at org.apache.directory.server.core.api.partition.AbstractPartition.destroy(AbstractPartition.java:125)
> 	at org.apache.directory.server.core.DefaultDirectoryService.shutdown(DefaultDirectoryService.java:1313)
> 	at org.apache.directory.server.ApacheDsService.stop(ApacheDsService.java:593)
> 	at org.apache.directory.server.wrapper.ApacheDsTanukiWrapper.stop(ApacheDsTanukiWrapper.java:97)
> 	at org.tanukisoftware.wrapper.WrapperManager$13.run(WrapperManager.java:3134)
> Caused by: org.apache.directory.api.util.exception.MultiException: ERR_577 Errors encountered on destroy()
> 	at org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition.doDestroy(JdbmPartition.java:464)
> 	at org.apache.directory.server.core.api.partition.AbstractPartition.destroy(AbstractPartition.java:125)
> 	at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.removeContextPartition(DefaultPartitionNexus.java:909)
> 	... 6 more
> And server was unable to start again...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira