Ответ 1
Может возникнуть проблема с pg: '0.18.1'
. Я попытался вернуться к 0.18.0
, и я считаю, что проблема ушла.
Я открою проблему на репо после тестирования немного более локально. Я добавил эту проблему в pg repo.
Я запускаю свой rspec, и большая часть теста была неудачной. Я получил для них ту же ошибку, что:
Failure/Error: Unable to find matching line from backtrace
ActiveRecord::StatementInvalid:
PG::ConnectionBad: PQsocket() can't get socket descriptor: BEGIN
Я нашел question, который похож на мою проблему, но ответа еще нет, и я также попробовал решение из этого ссылка, но для меня не было никаких различий. Я открыл тестовую консоль и выполнил несколько простых запросов, и это сработало.
Может возникнуть проблема с pg: '0.18.1'
. Я попытался вернуться к 0.18.0
, и я считаю, что проблема ушла.
Я открою проблему на репо после тестирования немного более локально. Я добавил эту проблему в pg repo.
Я не знаю, связаны ли проблемы, но я обнаружил, что, используя локальный файл сокета unix вместо localhost, проблема, похоже, исчезла из-за связанного вопроса; возможно, это может помочь вам?
"Rake spec" неспособность большинства тестов, но "рельсы s" отлично работает с диаспорой
Может не иметь никакого отношения к rspec, но бросать это на всякий случай. Я боролся с этим в течение нескольких недель, и для меня это был путь, когда пассажир порождает новые процессы. Мне просто пришлось добавить это
# Rails -- prepared statements incompatible with faster spawn methods.
PassengerSpawnMethod conservative
в \etc\apache2\mods-available\passenger.conf
https://www.phusionpassenger.com/library/indepth/ruby/spawn_methods/
Я получал ту же ошибку и некоторые другие ошибки, например PG::UnableToSend: socket not open
. Считается ошибкой в случайные моменты времени. Я проследил его, и это было из-за модели с неправильной ассоциацией belongs_to
. Это может не относиться к вам, но, надеюсь, это помогает кому-то.
У меня было:
belongs_to :user, class_name: User
Когда это должно было быть:
belongs_to :user, class_name: 'User'
Каким-то образом одна строка разбивала все соединения сокетов PG.