Git Product home page Git Product logo

Comments (12)

kdubb avatar kdubb commented on May 24, 2024

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.

normanmaurer avatar normanmaurer commented on May 24, 2024

@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.

kdubb avatar kdubb commented on May 24, 2024

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.

brettwooldridge avatar brettwooldridge commented on May 24, 2024

Yeah, we're looking at a similar migration in our product. Netty 3 -> 4 is a huge change.

from pgjdbc-ng.

normanmaurer avatar normanmaurer commented on May 24, 2024

@brettwooldridge agree it is a change but we had to do it for performance reasons ;)

from pgjdbc-ng.

kdubb avatar kdubb commented on May 24, 2024

@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.

jesperpedersen avatar jesperpedersen commented on May 24, 2024

@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.

kdubb avatar kdubb commented on May 24, 2024

@jesperpedersen Good idea, I shall try that now

from pgjdbc-ng.

normanmaurer avatar normanmaurer commented on May 24, 2024

@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.

kdubb avatar kdubb commented on May 24, 2024

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.

brettwooldridge avatar brettwooldridge commented on May 24, 2024

Excellent!

from pgjdbc-ng.

kdubb avatar kdubb commented on May 24, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.