Skip to content

IllegalArgumentException: Added a page twice #690

@hamadodene

Description

@hamadodene

In our production installation of EmailSuccess.com , I found this exception in HerdDB logs:

20-09-17-08-30-56       herddb.network.netty.AbstractChannel Sep 17, 2020 8:30:56 AM herddb.network.netty.AbstractChannel processRequest
SEVERE: herddb.network.netty.LocalVMChannel$ServerSideLocalVMChannel@f0d7bed: error herddb.storage.DataStorageManagerException: java.lang.IllegalArgumentException: Added a page twice: DataPage{pageId=492796, immutable=true, writable=f
alse, usedMemory=849030}
herddb.storage.DataStorageManagerException: java.lang.IllegalArgumentException: Added a page twice: DataPage{pageId=492796, immutable=true, writable=false, usedMemory=849030}
        at herddb.core.TableManager.loadPageToMemory(TableManager.java:2232)
        at herddb.core.TableManager.fetchDataPage(TableManager.java:3584)
        at herddb.core.TableManager.fetchRecord(TableManager.java:3515)
        at herddb.core.TableManager.accessRecord(TableManager.java:3463)
        at herddb.core.TableManager.lambda$streamTableData$24(TableManager.java:3386)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
        at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
        at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
        at java.base/java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
        at java.base/java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
        at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
        at java.base/java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
        at herddb.core.StreamDataScanner.fetchNext(StreamDataScanner.java:61)
        at herddb.core.StreamDataScanner.next(StreamDataScanner.java:71)
        at herddb.model.DataScanner.consume(DataScanner.java:113)
        at herddb.server.ServerSideConnectionPeer.handleOpenScanner(ServerSideConnectionPeer.java:464)
        at herddb.server.ServerSideConnectionPeer.requestReceived(ServerSideConnectionPeer.java:183)
        at herddb.network.netty.AbstractChannel.processRequest(AbstractChannel.java:96)
        at herddb.network.netty.AbstractChannel.directProcessPdu(AbstractChannel.java:88)
        at herddb.network.netty.LocalVMChannel.sendOneWayMessage(LocalVMChannel.java:63)
        at herddb.network.netty.AbstractChannel.sendRequestWithAsyncReply(AbstractChannel.java:177)
        at herddb.network.Channel.sendMessageWithPduReply(Channel.java:81)
        at herddb.client.RoutedClientSideConnection.executeScan(RoutedClientSideConnection.java:715)
        at herddb.client.HDBConnection.executeScan(HDBConnection.java:345)
        at herddb.jdbc.HerdDBPreparedStatement.executeQuery(HerdDBPreparedStatement.java:81)
        at magnews.gateway.messagemanager.MessageManager.lambda$selectMessagesForArchiver$11(MessageManager.java:2704)
        at magnews.gateway.database.TransactionHelper.doInAutocommit(TransactionHelper.java:250)
        at magnews.gateway.messagemanager.MessageManager.selectMessagesForArchiver(MessageManager.java:2687)
        at magnews.gateway.archiver.Archiver$QueueArchiverTask.run(Archiver.java:192)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalArgumentException: Added a page twice: DataPage{pageId=492796, immutable=true, writable=false, usedMemory=849030}
        at herddb.core.ClockProPolicy.unsafeAdd(ClockProPolicy.java:368)
        at herddb.core.ClockProPolicy.unsafeAdd(ClockProPolicy.java:272)
        at herddb.core.ClockProPolicy.add(ClockProPolicy.java:155)
        at herddb.core.ClockProPolicy.add(ClockProPolicy.java:52)
        at herddb.core.TableManager.loadPageToMemory(TableManager.java:2216)
        ... 33 more
20-09-17-08-30-56       herddb.network.netty.AbstractChannel Sep 17, 2020 8:30:56 AM herddb.network.netty.AbstractChannel lambda$failPendingMessages$5
SEVERE: herddb.network.netty.LocalVMChannel@6c message 6,735,855 was not replied callback:herddb.network.Channel$$Lambda$283/0x00000008003f4c40@1972ed3e

20-09-17-08-30-56       herddb.network.netty.AbstractChannel Sep 17, 2020 8:30:56 AM herddb.network.netty.AbstractChannel$2 messageSent
SEVERE: herddb.network.netty.AbstractChannel$2@6b936061: error while sending reply message to PooledUnsafeDirectByteBuf(freed)
java.io.IOException: channel closed
        at herddb.network.netty.LocalVMChannel.sendOneWayMessage(LocalVMChannel.java:57)
        at herddb.network.netty.AbstractChannel.sendRequestWithAsyncReply(AbstractChannel.java:177)
        at herddb.network.Channel.sendMessageWithPduReply(Channel.java:81)
        at herddb.client.RoutedClientSideConnection.executeUpdate(RoutedClientSideConnection.java:383)
        at herddb.client.HDBConnection.executeUpdate(HDBConnection.java:194)
        at herddb.jdbc.HerdDBPreparedStatement.doExecuteLargeUpdateWithParameters(HerdDBPreparedStatement.java:564)
        at herddb.jdbc.HerdDBPreparedStatement.executeLargeUpdate(HerdDBPreparedStatement.java:558)
        at herddb.jdbc.HerdDBPreparedStatement.executeUpdate(HerdDBPreparedStatement.java:547)
        at magnews.gateway.messagemanager.MessageManager.updateFinalMessageStatus(MessageManager.java:1784)
        at magnews.gateway.messagemanager.MessageManager.lambda$updateMessageStatusOnDeliverySuccess$3(MessageManager.java:1734)
        at magnews.gateway.database.TransactionHelper$DatabaseWork.lambda$fromVoid$0(TransactionHelper.java:37)
        at magnews.gateway.database.TransactionHelper.doInTransaction(TransactionHelper.java:338)
        at magnews.gateway.database.TransactionHelper.voidInTransaction(TransactionHelper.java:404)
        at magnews.gateway.messagemanager.MessageManager.updateMessageStatusOnDeliverySuccess(MessageManager.java:1733)
        at magnews.gateway.sender.DeliverMessage.deliverMessage(DeliverMessage.java:1216)
        at magnews.gateway.sender.DeliverMessage.run(DeliverMessage.java:210)
        at magnews.gateway.sender.Sender$LeasedRunnable.run(Sender.java:350)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

HerdDB version: 0.19.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions