bobics

bobics

Ecto poolboy checkout timeouts

I’m seeing an issue where all the poolboy database workers in our pool are being used after some request load (not a lot) on our server. :poolboy.status/1 shows the state as full. Even when the request load drops, all the poolboy workers are still busy. Error log:

GenServer #PID<0.21289.1135> terminating ** (stop) exited in: :gen_server.call(App.Repo.Pool, {:checkout, #Reference<0.2565884396.2513436674.60058>, true}, 5000) ** (EXIT) time out

In our postgres logs we immediately start seeing, and very few queries going through:


unexpected EOF on client connection with an open transaction

The issue seems similar to Timeouts on Poolboy.checkout · Issue #127 · elixir-ecto/db_connection · GitHub except we’re on OTP 21.0.5 where that bug is already fixed.

We don’t have a specific repro case, except that it seems to occur under some request load. The DB isn’t under any significant load. This typically occurs anywhere from 30 minutes to a few hours, and the request load doesn’t vary significantly during that period as far as I can tell. What’s odd is that the application goes from sub 50ms mean response time to unresponsive almost immediately when the issue occurs, and then never recovers until we restart.

Using Ecto 2.2.10, db_connection 1.1.3

Hoping someone here can provide some leads, thanks!

Marked As Solved

bobics

bobics

Did a bunch of debugging today, I think the underlying issue is due to some long running transactions (which don’t get logged properly so we weren’t seeing them in our postgres logs). I’ll update this thread when I confirm.

Last Post!

alexfilatov

alexfilatov

hey @bobics , any chance you solved this back in 2019? :slight_smile: thanks!

Where Next?

Popular in Questions Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New

We're in Beta

About us Mission Statement