Code Monkey home page Code Monkey logo

Comments (5)

will avatar will commented on May 28, 2024

Thanks for reporting this. All of the Postgres frames start with a single
ascii char, so that 2 there is suspicious. It'll be at least a week before
I can dig in, but wanted you to know I saw the issue.

On Friday, August 5, 2016, shail [email protected] wrote:

When I run my server and query it manually, everything works as expected.
But when I try to load test with wrk or ApacheBench, I immediately get
the error below, and even after I kill the load test, requests take a long
time and timeout. Here is the code:

DB = PG.connect("postgres://shailpatel@localhost:5432/supercontest_data")

get "/" do |env|
env.response.content_type = "application/json"
result = DB.exec({Int32, String}, "SELECT id, name FROM teams")
hash = { "data" => result.to_hash }
hash.to_json
end

Error:

Exception: Expected PQ::Frame::ParseComplete but got PQ::Frame::Unknown(@type='\u{2}', @bytes=Slice[]) (Exception)
[4449219811] *raise:NoReturn +163
[4449593329] *PG::Connection#exec<Tuple(Int32:Class, String:Class), String, Array(Array(JSON::Type) | Bool | Float32 | Float64 | Hash(String, JSON::Type) | Int32 | Int64 | PG::Numeric | String | Time | Nil)>:PG::Result(Tuple(Int32:Class, String:Class)) +11169
[4449576524] ~procProc(HTTP::Server::Context, String)@./src/supercontest_data_crystal.cr:8 +332
[4449754793] *Kemal::RouteHandler#callHTTP::Server::Context:HTTP::Server::Context +73
[4449809084] *Kemal::StaticFileHandler@HTTP::Handler#call_nextHTTP::Server::Context:(Bool | HTTP::Server::Context | HTTP::Server::Response | HTTP::Server::Response::Output | IO::FileDescriptor+ | Int32 | Nil) +556
[4449760866] *Kemal::CommonExceptionHandler#callHTTP::Server::Context:(Bool | HTTP::Server::Context | HTTP::Server::Response | HTTP::Server::Response::Output | IO::FileDescriptor+ | Int32 | Nil) +2370
[4449765265] *Kemal::CommonLogHandler#callHTTP::Server::Context:HTTP::Server::Context +1793
[4449757783] *Kemal::InitHandler#callHTTP::Server::Context:(Bool | HTTP::Server::Context | HTTP::Server::Response | HTTP::Server::Response::Output | IO::FileDescriptor+ | Int32 | Nil) +615
[4449703673] *HTTP::Server#handle_client<(TCPSocket+ | Nil)>:Nil +10489
[4449235224] *Fiber#run:(Int64 | Nil) +40


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#53, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAHtXhgIFdutqaN29EUAyunuPsoi2y_ks5qc9aegaJpZM4JeKJH
.

from crystal-pg.

will avatar will commented on May 28, 2024

@shail could you please give https://github.com/will/crystal-pg/tree/mutex a try, and see if putting a mutex around the query fixes it for you?

from crystal-pg.

shail avatar shail commented on May 28, 2024

@will I pulled that branch and now am not getting that error anymore. Thanks for the help!

from crystal-pg.

will avatar will commented on May 28, 2024

Thanks for verifying.

I want to do some more benchmarking to make sure that holding the mutex isn't too much of an overhead. I wasn't sure if this was something the connection should be doing, or if some higher level thing that takes care of pooling should.

I did a bit of benchmarking and it seems the overhead is very low, and if that turns out to be true, then might as well just do it.

from crystal-pg.

will avatar will commented on May 28, 2024

released as v0.9.1

from crystal-pg.

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.