[ 
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

Reply via email to