Konstantin Orlov created IGNITE-23116:
-----------------------------------------
Summary: Improve exception message on insertion under load
Key: IGNITE-23116
URL: https://issues.apache.org/jira/browse/IGNITE-23116
Project: Ignite
Issue Type: Improvement
Reporter: Konstantin Orlov
Tried to upload 6kk rows to a table and got
{{org.apache.ignite.sql.SqlException: IGN-CMN-65535
TraceId:9761599e-8900-4911-9177-0a3e9bcf370b Failed to put value into index}}
exception. I used multiple writers to keep CPU loaded on the level of 85-90%,
cluster of a single node with disabled fsync. Table has 6 sorted indexes.
First problem, is message is not very informative. Down start trace there is
{{IgniteInternalException: Failed to allocate temporary buffer for checkpoint
(increase checkpointPageBufferSize configuration property): default}}, but it's
unclear what does `default` means until you checked the place where exception
is thrown (apparently it's a name of the storage profile). Second, the only
usage of `checkpointPageBufferSize` is in the message of exception, so what
should be changed and where is not clear.
Another problem here, is that stack trace contains `CorruptedTreeException`,
which make the problem to seem more severe that it is.
Here is a full stack trace of the exception:
{code}
org.apache.ignite.internal.storage.StorageException: Failed to put value into
index
at
org.apache.ignite.internal.storage.pagememory.index.sorted.PageMemorySortedIndexStorage.lambda$put$2(PageMemorySortedIndexStorage.java:125)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.index.AbstractPageMemoryIndexStorage.busy(AbstractPageMemoryIndexStorage.java:336)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.index.AbstractPageMemoryIndexStorage.busyNonDataRead(AbstractPageMemoryIndexStorage.java:317)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.index.sorted.PageMemorySortedIndexStorage.put(PageMemorySortedIndexStorage.java:113)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.TableSchemaAwareIndexStorage.put(TableSchemaAwareIndexStorage.java:83)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.index.IndexUpdateHandler.putToIndex(IndexUpdateHandler.java:270)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.index.IndexUpdateHandler.addToIndexes(IndexUpdateHandler.java:69)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.StorageUpdateHandler.tryProcessRow(StorageUpdateHandler.java:173)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.StorageUpdateHandler.lambda$handleUpdate$0(StorageUpdateHandler.java:114)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.mv.PersistentPageMemoryMvPartitionStorage.lambda$runConsistently$0(PersistentPageMemoryMvPartitionStorage.java:180)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.mv.AbstractPageMemoryMvPartitionStorage.busy(AbstractPageMemoryMvPartitionStorage.java:659)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.mv.PersistentPageMemoryMvPartitionStorage.runConsistently(PersistentPageMemoryMvPartitionStorage.java:170)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.raft.snapshot.outgoing.SnapshotAwarePartitionDataStorage.runConsistently(SnapshotAwarePartitionDataStorage.java:76)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.StorageUpdateHandler.handleUpdate(StorageUpdateHandler.java:109)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.raft.PartitionListener.handleUpdateCommand(PartitionListener.java:312)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.table.distributed.raft.PartitionListener.lambda$onWrite$1(PartitionListener.java:227)
~[ignite-table-3.0.0-SNAPSHOT.jar:?]
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
[?:?]
at
org.apache.ignite.internal.table.distributed.raft.PartitionListener.onWrite(PartitionListener.java:184)
[ignite-table-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.raft.server.impl.JraftServerImpl$DelegatingStateMachine.onApply(JraftServerImpl.java:716)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.core.FSMCallerImpl.doApplyTasks(FSMCallerImpl.java:571)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.core.FSMCallerImpl.doCommitted(FSMCallerImpl.java:539)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.core.FSMCallerImpl.runApplyTask(FSMCallerImpl.java:458)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.core.FSMCallerImpl$ApplyTaskHandler.onEvent(FSMCallerImpl.java:131)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.core.FSMCallerImpl$ApplyTaskHandler.onEvent(FSMCallerImpl.java:125)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.disruptor.StripedDisruptor$StripeEntryHandler.onEvent(StripedDisruptor.java:326)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.raft.jraft.disruptor.StripedDisruptor$StripeEntryHandler.onEvent(StripedDisruptor.java:283)
[ignite-raft-3.0.0-SNAPSHOT.jar:?]
at
com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:167)
[disruptor-4.0.0.jar:?]
at
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:122)
[disruptor-4.0.0.jar:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: org.apache.ignite.internal.pagememory.tree.CorruptedTreeException:
B+Tree is corrupted [groupId=10, pageIds=[563027262832838], groupName=10,
msg=Runtime failure on search row: SortedIndexRow [rowId=RowId [partitionId=18,
uuid=00000191-9ea8-9562-a4f4-8d72b365595c]]]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.corruptedTreeException(BplusTree.java:6670)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.invoke(BplusTree.java:2119)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.index.sorted.PageMemorySortedIndexStorage.lambda$put$2(PageMemorySortedIndexStorage.java:121)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
... 28 more
Caused by: org.apache.ignite.internal.lang.IgniteInternalException: Failed to
allocate temporary buffer for checkpoint (increase checkpointPageBufferSize
configuration property): default
at
org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory.postWriteLockPage(PersistentPageMemory.java:1099)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory.writeLockPage(PersistentPageMemory.java:1084)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory.writeLock(PersistentPageMemory.java:449)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory.writeLock(PersistentPageMemory.java:434)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.util.PageHandler.writeLock(PageHandler.java:398)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.util.PageHandler.writePage(PageHandler.java:347)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.datastructure.DataStructure.write(DataStructure.java:318)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.access$5000(BplusTree.java:193)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree$Put.tryInsert(BplusTree.java:4112)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree$Invoke.onNotFound(BplusTree.java:4370)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.invokeDown(BplusTree.java:2196)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.invokeDown(BplusTree.java:2171)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.invokeDown(BplusTree.java:2171)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.pagememory.tree.BplusTree.invoke(BplusTree.java:2093)
~[ignite-page-memory-3.0.0-SNAPSHOT.jar:?]
at
org.apache.ignite.internal.storage.pagememory.index.sorted.PageMemorySortedIndexStorage.lambda$put$2(PageMemorySortedIndexStorage.java:121)
~[ignite-storage-page-memory-3.0.0-SNAPSHOT.jar:?]
... 28 more
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)