169 похожих чатов

Всем привет переношу достаточно нагруженный проект с виртуалки на опенвз на

виртуалку под квм
железо хоста своё

конфиг виртуалки идентичен, сервер в остальном пуст, диски были сас, стали ссд

был старый дебиан, стала новая убунта
эликсир и эрланг поставлен через asdf

конфиг постгреса идентичен

на новом месте сыпятся
(ErlangError) Erlang error: {:timeout, {:gen_server, :call, [#PID<0.3127.0>, {:checkout, #Reference<0.2969689412.2365325315.153707>, true, 15000}, 5000]}}

(DBConnection.ConnectionError) connection not available because of disconnection

как бы подебажить и получить более подробную информацию по причинам ошибок?

23 ответов

16 просмотров

iex -S mix run --no-start Запустит шелл без старта аппы Оттуда можете проверить конфигурации И попробовать запустить аппликейшн экто с данными конфигурациями

Artem-Pankov Автор вопроса

Проблемы с запуском нет. Более того оно работает несколько часов, а потом начинает сыпаться. Часть запросов обрабатывается, часть нет

Artem Pankov
Проблемы с запуском нет. Более того оно работает н...

А, тоесть это не при запуске, хым Ну тут видно, что соединение теряется, а не постгря или эликсир отключаются. Так что дело в сети Я бы помониторил что пишет ss -tulpn по поводу соединений, посмотрел бы на ping. Ещё я бы посмотрел на состояния интерфейсов и dmesg, вдруг что-то хардварное Можно даже собрать tcpdump на всякий случай, но я думаю он ничего особенного не покажет, только tcp-пакеты, которые остались без ответа

Lama Lover
А, тоесть это не при запуске, хым Ну тут видно, чт...

Ещё может быть дело в неправильной конфигурации ресурсов машины с базой данных. Может быть там очень много тредов, которые кушают всё время CPU, и не дают базе держать сокеты открытыми

Lama Lover
Ещё может быть дело в неправильной конфигурации ре...

Такое ещё часто бывает, когда система уходит в своп, кстати

Artem Pankov
Проблемы с запуском нет. Более того оно работает н...

У нового постгреса меньший лимит коннекшнов чем у старого?

Artem Pankov
Проблемы с запуском нет. Более того оно работает н...

На новой машине меньший лимит на количество открытых сокетов чем на старой?

Artem-Pankov Автор вопроса
Artem-Pankov Автор вопроса
V
Скорее про ulimit

Там только на файлы 1024, надо поднять

Artem Pankov
Там только на файлы 1024, надо поднять

В момент когда начинают сыпаться ошибки получается ли подключиться к постгресу каким-нибудь клиентом?

Пробовали обновить db_connection? В новых версиях эта ошибка вообще не пишется

Я посмотрел код db_connection Такая ошибка скорее всего происходит когда connection занят чем-то. Вам бы попрофилировать процессы модуля DBConnection.Connection и посмотреть как какой функции и с каким стейтом они висят. Можно банально посомтреть пиды в обсервере и потыкать их через Process.info (ErlangError) Erlang error: {:timeout, {:gen_server, :call, [#PID<0.3127.0>, {:checkout, #Reference<0.2969689412.2365325315.153707>, true, 15000}, 5000]}} А такая ошибка бывает только когда дисконнект вызван явно, либо когда используется только-только созданный connection (DBConnection.ConnectionError) connection not available because of disconnection

Lama Lover
Я посмотрел код db_connection Такая ошибка скорее...

Я бы ещё сделал поллинг через :sys.get_state. Это замедлит работу процесса, но позволит понять его стейт, с которым он таймаутится

Artem-Pankov Автор вопроса
Lama Lover
Я посмотрел код db_connection Такая ошибка скорее...

в целом из интересного удалось выяснить только то, что похоже проблема касается только отдельных процессов у низ зашкаливает очередь сообщений с сообщениями о чекауте

Artem Pankov
в целом из интересного удалось выяснить только то,...

Значит в одном connection зависает транзакция или долго исполняется запрос

Artem-Pankov Автор вопроса
Lama Lover
Значит в одном connection зависает транзакция или ...

с ними же по истечении какого-то времени что-то должно произойти, чтобы они вечно не висели?

Artem Pankov
с ними же по истечении какого-то времени что-то до...

С обычными запросами — да. С транзакциями — нет

Artem-Pankov Автор вопроса
Lama Lover
С обычными запросами — да. С транзакциями — нет

проблема именно с самыми тривиальными селектами причём после перезагрузки постгреса процесс db_connection так и остался висеть и не прибился это в какую сторону бы покопать?

Artem Pankov
проблема именно с самыми тривиальными селектами пр...

Хым, я тут даже не знаю. Опять же, вы используете очень старый db_connection, может попробуете его обновить? Может этот баг уже известен и пофикшен

Artem-Pankov Автор вопроса
Lama Lover
Хым, я тут даже не знаю. Опять же, вы используете ...

ну да, это была первая идея, обновить коннекшн, а для него экто, а для него феникс, ... только с приложением на 3000 тестов это тянет не на день))

Artem Pankov
ну да, это была первая идея, обновить коннекшн, а ...

Ну, обновить рано или поздно придётся А чинить такой плавающий баг, наверное, придётся патчами в db_connection

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта