Rspec: PG::ConnectionBad: PQsocket() не может получить дескриптор сокета

Я запускаю rspec, и большинство тестов провалились. Я получил ту же ошибку для них:

    Failure/Error: Unable to find matching line from backtrace
    ActiveRecord::StatementInvalid:
    PG::ConnectionBad: PQsocket() can't get socket descriptor: BEGIN

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

5 ответов

Там может быть проблема с pg: '0.18.1', Я пытался вернуться к 0.18.0и я верю, что проблема ушла.

Я открою вопрос о репо после тестирования немного более локально. Я добавил эту проблему в репозиторий pg.

РЕДАКТИРОВАТЬ: я был неправ. Что на самом деле помогло, так это установка гема spring-commands-rspec. Я думаю, что это закончилось для меня кэшированием в состоянии, в котором оно работало. Хотя он также может легко кэшировать его в состоянии, в котором он этого не сделал.

Я установил 'pg', '0.20.0', понизив до 0.19.0, это сработало для меня.

Может не иметь никакого отношения к 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/

Я не знаю, связаны ли проблемы - но я обнаружил, что при использовании локального файла сокета unix вместо localhost проблема, казалось, исчезла для связанного вопроса; возможно, это может помочь вам тоже?

"Rake spec" не прошел большинство тестов, но "rails s" отлично работает на источнике диаспоры

Я получаю ту же ошибку, и некоторые другие ошибки, такие как PG::UnableToSend: socket not open, Казалось, ошибка в случайное время. Я проследил это, и это было на самом деле из-за неправильной модели belongs_to ассоциация. Это может не относиться к вам, но, надеюсь, это поможет кому-то.

Я имел:

belongs_to :user, class_name: User

Когда это должно было быть:

belongs_to :user, class_name: 'User'

Каким-то образом эта линия разорвала все мои соединения с PG-сокетами.

Другие вопросы по тегам