Comments (12)
Is 4 vastly different from 3? Now that I have finished the first pass of SSL support I could look into this but I am no Netty expert.
from pgjdbc-ng.
@kdubb well the API is completely different... So maybe the easiest would be to leave it for me ;) Anyway if you feel brave enough you could check here:
http://netty.io/wiki/new-and-noteworthy.html
from pgjdbc-ng.
Just after I got my head around Netty 3... I'm left in the dust! Haha For now I'll leave it to you if you are interested.
from pgjdbc-ng.
Yeah, we're looking at a similar migration in our product. Netty 3 -> 4 is a huge change.
from pgjdbc-ng.
@brettwooldridge agree it is a change but we had to do it for performance reasons ;)
from pgjdbc-ng.
@normanmaurer, issues #45 and #46 seem to be related to Netty reporting writes as "succeeded" even when the connection itself has been abandoned. I have searched around and the suggested solution for Netty 3 is a "heartbeat" through IdleStateAwareHandler. Obviously I cannot change the server protocol and I also cannot start sending heartbeat's randomly since if it was just a long running query the server would have garbage.
Honestly I don't quite understand how a write can "succeed" when there is no possible way for an ACK to be sent for it.
Is this something that can be solved by moving to Netty 4? Is there another solution for Netty 3?
from pgjdbc-ng.
@kdubb at least we should bump the minimum requirement to 3.8.0 for now, as there seems to have been many fixes from 3.6.3 to that release
from pgjdbc-ng.
@jesperpedersen Good idea, I shall try that now
from pgjdbc-ng.
@kdubb honestly I would have to look into the code to say anything about #45 and #46. What a succeed write means is that we was able to call java.nio.SocketChannel.write(...) without and exception and the buffer was written completely. That's it, nothing more
@jesperpedersen @kdubb @brettwooldridge I will try to assign some time for next week to move the code base over to Netty 4. So stay tuned...
from pgjdbc-ng.
FYI, I finally discovered my problem (which seems unrelated to Netty itself) and that's that I wasn't dispatching exception from the channel handler.
To top it off, during my testing, I was killing the postmaster process and not the actual backend process servicing the connection... so I wasn't actually killing the correct process at all; this is quite a relief as I couldn't figure out at all how it was still working!
Anyways, I bumped Netty to 3.8 and I believe fixed the "wait indefinitely" on a closed connection bugs.
from pgjdbc-ng.
Excellent!
from pgjdbc-ng.
@brettwooldridge If you could get back to the version of bitronix that was revealing these bugs and verify they are at least throwing exceptions, that would be awesome.
from pgjdbc-ng.
Related Issues (20)
- Possibility change default schema HOT 2
- ResultSetDelegator for PGStatementDelegator HOT 1
- CryptoUtil.nounce(nounceLength,secureRandom) is too slow in Openshift 4
- Connect timeout with pgjdbc-ng but PostgreSQL JDBC Driver work
- Endlessly recursive error handling (0.8.9)
- Support TCP keepalive and user timeout settings HOT 1
- LEAK: ByteBuf.release() was not called before it's garbage-collected HOT 1
- Support for stringtype=unspecified?
- Avoid use of prepared statement and still use placeholders
- Allow underscore _ in the host name of a postgres database HOT 1
- Issue with RDS IAM Role Authentication
- update protocol properties at the time of connection creation
- What's the status and direction of the project? HOT 17
- Does it support MATCH_RECOGNIZE? HOT 4
- SCRAM channel binding check failed HOT 3
- Connection leak when timing out connection attempts
- Transfer to PostgreSQL Organization HOT 12
- Committer approval for transfer of copyright HOT 29
- Prepared statement already exists
- Parameter Parsing fails on concat operator in SQLText#parse
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 pgjdbc-ng.