[
https://issues.apache.org/jira/browse/IGNITE-27089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Scherbakov updated IGNITE-27089:
---------------------------------------
Description:
We currently have two serious issues related to handling of delayed ack failures
1. On tx coordinator ack error is lost and tx is started to commit even in case
of replication failure, causing potential data corruption.
2. Delayed ack error is not correctly propagated to a client, causing read
error like this [1] and impossibility to commit such transaction:
[1]
{noformat}
Caused by: java.lang.IndexOutOfBoundsException: readerIndex(5008) + length(1)
exceeds writerIndex(5008): UnpooledSlicedByteBuf(ridx: 5008, widx: 5008, cap:
5008/5008, unwrapped: AdaptivePoolingAllocator$AdaptiveByteBuf(ridx: 5012,
widx: 5012, cap: 8192))
at
io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1468)
at io.netty.buffer.AbstractByteBuf.readByte(AbstractByteBuf.java:737)
at
org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackExtensionTypeHeader(ClientMessageUnpacker.java:379)
at
org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackUuid(ClientMessageUnpacker.java:676)
at
org.apache.ignite.internal.client.TcpClientChannel.handleNotification(TcpClientChannel.java:582)
at
org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:533)
at
org.apache.ignite.internal.client.TcpClientChannel.onMessage(TcpClientChannel.java:307)
... 23 more {code}
{noformat}
was:
{code:java}
Caused by: java.lang.IndexOutOfBoundsException: readerIndex(5008) + length(1)
exceeds writerIndex(5008): UnpooledSlicedByteBuf(ridx: 5008, widx: 5008, cap:
5008/5008, unwrapped: AdaptivePoolingAllocator$AdaptiveByteBuf(ridx: 5012,
widx: 5012, cap: 8192))
at
io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1468)
at io.netty.buffer.AbstractByteBuf.readByte(AbstractByteBuf.java:737)
at
org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackExtensionTypeHeader(ClientMessageUnpacker.java:379)
at
org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackUuid(ClientMessageUnpacker.java:676)
at
org.apache.ignite.internal.client.TcpClientChannel.handleNotification(TcpClientChannel.java:582)
at
org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:533)
at
org.apache.ignite.internal.client.TcpClientChannel.onMessage(TcpClientChannel.java:307)
... 23 more {code}
> Fix delayed ack failures handling
> ---------------------------------
>
> Key: IGNITE-27089
> URL: https://issues.apache.org/jira/browse/IGNITE-27089
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexey Scherbakov
> Assignee: Alexey Scherbakov
> Priority: Major
> Labels: ignite-3
> Time Spent: 10m
> Remaining Estimate: 0h
>
> We currently have two serious issues related to handling of delayed ack
> failures
> 1. On tx coordinator ack error is lost and tx is started to commit even in
> case of replication failure, causing potential data corruption.
> 2. Delayed ack error is not correctly propagated to a client, causing read
> error like this [1] and impossibility to commit such transaction:
> [1]
> {noformat}
> Caused by: java.lang.IndexOutOfBoundsException: readerIndex(5008) + length(1)
> exceeds writerIndex(5008): UnpooledSlicedByteBuf(ridx: 5008, widx: 5008, cap:
> 5008/5008, unwrapped: AdaptivePoolingAllocator$AdaptiveByteBuf(ridx: 5012,
> widx: 5012, cap: 8192))
> at
> io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1468)
> at io.netty.buffer.AbstractByteBuf.readByte(AbstractByteBuf.java:737)
> at
> org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackExtensionTypeHeader(ClientMessageUnpacker.java:379)
> at
> org.apache.ignite.internal.client.proto.ClientMessageUnpacker.unpackUuid(ClientMessageUnpacker.java:676)
> at
> org.apache.ignite.internal.client.TcpClientChannel.handleNotification(TcpClientChannel.java:582)
> at
> org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:533)
> at
> org.apache.ignite.internal.client.TcpClientChannel.onMessage(TcpClientChannel.java:307)
> ... 23 more {code}
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)