Comments (2)
Sorry for the delayed reply.
Please can you provide more information about the failure.
I'm not sure what could be causing a PessimisticLockingFailureException
. What database are you using? What is the underlying database error that's causing the PessimisticLockingFailureException.
from eventuate-tram-sagas.
Sorry for the delayed reply. Please can you provide more information about the failure. I'm not sure what could be causing a
PessimisticLockingFailureException
. What database are you using? What is the underlying database error that's causing the PessimisticLockingFailureException.
We're using Aurora Postgres. The error in database is: 'duplicate key value violates unique constraint "received_messages_pkey"'. It kind of seems like there might be an outer transaction that might be messing with something? Not sure how this could be though because this code is ran before any application code.
Here's some of the stacktrace with personal information removed (I tried to include most important bits, but with the reactive stack it's kind of hard to distinguish them):
java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.springframework.dao.PessimisticLockingFailureException: R2DBC commit; The database returned ROLLBACK, so the transaction cannot be committed. Transaction failure is not known (check server logs?)
at io.eventuate.messaging.kafka.consumer.MessageConsumerKafkaImpl.handle(MessageConsumerKafkaImpl.java:106) ~[eventuate-messaging-kafka-consumer-0.18.0.RELEASE.jar:na]
at io.eventuate.messaging.kafka.consumer.MessageConsumerKafkaImpl.lambda$subscribeWithReactiveHandler$1(MessageConsumerKafkaImpl.java:59) ~[eventuate-messaging-kafka-consumer-0.18.0.RELEASE.jar:na]
at io.eventuate.messaging.kafka.consumer.SwimlaneDispatcher.processQueuedMessage(SwimlaneDispatcher.java:72) ~[eventuate-messaging-kafka-consumer-0.18.0.RELEASE.jar:na]
at net.personal.info.kafka.CustomReactiveSqlBasedDuplicateMessageDetectorTest$mockExecutorService$2.invoke(CustomReactiveSqlBasedDuplicateMessageDetectorTest.kt:151) ~[test/:na]
at net.personal.info.kafka.CustomReactiveSqlBasedDuplicateMessageDetectorTest$mockExecutorService$2.invoke(CustomReactiveSqlBasedDuplicateMessageDetectorTest.kt:149) ~[test/:na]
Caused by: org.springframework.dao.PessimisticLockingFailureException: R2DBC commit; The database returned ROLLBACK, so the transaction cannot be committed. Transaction failure is not known (check server logs?)
at org.springframework.r2dbc.connection.ConnectionFactoryUtils.convertR2dbcException(ConnectionFactoryUtils.java:233) ~[spring-r2dbc-6.1.3.jar:6.1.3]
at org.springframework.r2dbc.connection.R2dbcTransactionManager.translateException(R2dbcTransactionManager.java:437) ~[spring-r2dbc-6.1.3.jar:6.1.3]
at org.springframework.r2dbc.connection.R2dbcTransactionManager.lambda$doCommit$9(R2dbcTransactionManager.java:307) ~[spring-r2dbc-6.1.3.jar:6.1.3]
at reactor.core.publisher.Mono.lambda$onErrorMap$27(Mono.java:3785) ~[reactor-core-3.6.2.jar:3.6.2]
at reactor.core.publisher.Mono.lambda$onErrorResume$29(Mono.java:3875) ~[reactor-core-3.6.2.jar:3.6.2]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.6.2.jar:3.6.2]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.6.2.jar:3.6.2]
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) ~[reactor-core-3.6.2.jar:3.6.2]
Caused by: java.util.concurrent.ExecutionException: org.springframework.dao.PessimisticLockingFailureException: R2DBC commit; The database returned ROLLBACK, so the transaction cannot be committed. Transaction failure is not known (check server logs?)
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) ~[na:na]
at io.eventuate.messaging.kafka.consumer.MessageConsumerKafkaImpl.handle(MessageConsumerKafkaImpl.java:100) ~[eventuate-messaging-kafka-consumer-0.18.0.RELEASE.jar:na]
... 25 common frames omitted
Caused by: io.r2dbc.postgresql.ExceptionFactory$PostgresqlRollbackException: The database returned ROLLBACK, so the transaction cannot be committed. Transaction failure is not known (check server logs?)
at io.r2dbc.postgresql.PostgresqlConnection.lambda$null$3(PostgresqlConnection.java:212) ~[r2dbc-postgresql-1.0.4.RELEASE.jar:1.0.4.RELEASE]
at reactor.core.publisher.ContextPropagation.lambda$contextRestoreForHandle$2(ContextPropagation.java:173) ~[reactor-core-3.6.2.jar:3.6.2]
at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:113) ~[reactor-core-3.6.2.jar:3.6.2]
from eventuate-tram-sagas.
Related Issues (20)
- Support nested sagas HOT 3
- Investigate usage of SagaParticipantStubManager
- Parameter 3 of method sagaCommandDispatcherFactory in io.eventuate.tram.sagas.spring.participant.SagaParticipantConfiguration required a bean of type 'io.eventuate.tram.commands.consumer.CommandReplyProducer' that could not be found. HOT 1
- Support conditional sending of notifications
- Improve exception handling for local saga steps HOT 2
- Proposal: 'Global' failure handlers for failed participants
- Implement onStartingCompensation() method
- Investigate flakey test: shouldReject HOT 4
- Separate orchestrator and participant schema
- Use flyway to configure eventuate DB schema HOT 1
- fix auto-configuration loading in Spring Boot 3
- No qualifying bean of type 'io.eventuate.tram.sagas.orchestration.SagaInstanceFactory' available
- ERROR: relation "eventuate.saga_instance" does not exist HOT 39
- java.lang.RuntimeException: No method for io.eventuate.tram.messaging.common.MessageImpl@5ae52f04 HOT 5
- ReactiveSaga not started if i use PostgreSQL HOT 4
- Implement a SagaManagerListener HOT 2
- When using reactive sagas, the data is not persisted as expected HOT 2
- ReactiveSqlQueryRow expects boolean fields to be Int HOT 1
- Consider defining a bean of type 'io.eventuate.tram.consumer.common.DuplicateMessageDetector' in your configuration
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eventuate-tram-sagas.