Skip to content

Postgres driver fails with IndexOutOfBoundsException during write operation after Netty 4.2 upgrade #2087

@mp911de

Description

@mp911de
org.springframework.dao.DataAccessResourceFailureException: execute; SQL [UPDATE "with_blobs" SET "byte_array" = $1, "byte_buffer" = $2, "byte_blob" = $3 WHERE "with_blobs"."id" = $4]; An I/O error occurred while sending to the backend or receiving from the backend
		at org.springframework.r2dbc.connection.ConnectionFactoryUtils.convertR2dbcException(ConnectionFactoryUtils.java:241)
		at org.springframework.r2dbc.core.DefaultDatabaseClient.lambda$inConnection$3(DefaultDatabaseClient.java:134)
		at reactor.core.publisher.Mono.lambda$onErrorMap$28(Mono.java:3843)
		at reactor.core.publisher.Mono.lambda$onErrorResume$30(Mono.java:3933)
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
		... 220 more
	Caused by: io.r2dbc.postgresql.client.ReactorNettyClient$PostgresConnectionException: [08006] An I/O error occurred while sending to the backend or receiving from the backend
		at io.r2dbc.postgresql.client.ReactorNettyClient.lambda$handleConnectionError$19(ReactorNettyClient.java:534)
		... 149 more
	Caused by: java.lang.IndexOutOfBoundsException: index: 0, length: 12 (expected: range(0, 4))
		at io.netty.buffer.AbstractByteBuf.checkRangeBounds(AbstractByteBuf.java:1397)
		at io.netty.buffer.AbstractByteBuf.checkIndex0(AbstractByteBuf.java:1404)
		at io.netty.buffer.AbstractByteBuf.checkIndex(AbstractByteBuf.java:1391)
		at io.netty.buffer.AdaptivePoolingAllocator$AdaptiveByteBuf.nioBuffer(AdaptivePoolingAllocator.java:1134)
		at io.netty.buffer.CompositeByteBuf.nioBuffer(CompositeByteBuf.java:1672)
		at io.netty.buffer.AdaptivePoolingAllocator$AdaptiveByteBuf.setBytes(AdaptivePoolingAllocator.java:1302)
		at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1111)
		at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1103)
		at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1094)
		at io.r2dbc.postgresql.message.frontend.FrontendMessageUtils.writeBytes(FrontendMessageUtils.java:60)
		at io.r2dbc.postgresql.message.frontend.Bind.lambda$encode$2(Bind.java:124)
		at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
		at io.r2dbc.postgresql.message.frontend.Bind.encode(Bind.java:119)
		at io.r2dbc.postgresql.message.frontend.CompositeFrontendMessage.encode(CompositeFrontendMessage.java:64)
		at io.r2dbc.postgresql.message.frontend.CompositeFrontendMessage.lambda$encode$0(CompositeFrontendMessage.java:54)
		at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:67)
		at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:128)
		... 135 more

Follow-up to #2086

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions