Comments (4)
I can see that too, can you elaborate how the control flow changes by setting the status to closed when the channel inactive is set first @kkoderok ?
from vertx-sql-client.
As I can see, when a connection is closed, the method PgCodec#fail completes query execution future with exception, by calling ctx.fireChannelRead(failure). This result leads to rollback of current transaction in the withTransaction method. The PgSocketConnection has no disconnection status, so it sends rollback command. In this case we add ClosePortalCommandCodec in the deque (PgCodec.inflight), but current iterator doesn't notice this command.
If we change call order, rollback request will be immediately failed with exception by PgSocketConnection.
from vertx-sql-client.
thanks , I missed the rollback
from vertx-sql-client.
thanks for the reproducer and analysis, the codec classes should actually record the failure and fail new command registered against the codec, so in response of the failure, the rollback command will be fail immediately by the codec. Your suggestion was also correct, but relying on the timing instead on the failed state that should be recorded to prevent execution of the pipeline for new commands.
from vertx-sql-client.
Related Issues (20)
- Support for Oracle collections HOT 14
- Remove Oracle Client from tech preview HOT 1
- Connection error using virtual threads HOT 3
- CascadeTest fails with Hibernate Reactive 2.0 and Vert.x 4.4 HOT 1
- NullPointerException in PgDecoder.decodeError() HOT 1
- PgSubscriberImpl.fetch() not implemented HOT 3
- PgSubscriberImpl silently does not register exception handler HOT 1
- authenticationScheme, integratedSecurity and trustServerCertificate param in sql URI is not effective HOT 1
- NTLM Authentication to connect to SQL Server HOT 11
- Cursor .close() not finishes in case of multiple close attempts
- PGClient not correctly handling SSL MODE ALWAYS HOT 1
- [MySQL] errors during test for graal native-compile project
- Sql Client always disables HostnameVerificationAlgorithm HOT 13
- Call Function with INOUT-Null-Value HOT 2
- MySQLConnectionImpl.resetConnection() does not clear PreparedStatementCache HOT 1
- Event loop blocked inside vertx-pg-client during DNS resolution HOT 12
- Update to SCRAM 3.0 and support channel binding HOT 1
- SQL Server has closed connection unexpectedly if sql request size more then package size and it is chunked (probably only together with ssl) HOT 4
- Memory leak in Aurora Postgres since 3.9.1 HOT 4
- MySQL client does not use providers by default available in FIPS-enabled environment HOT 3
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 vertx-sql-client.