Rspec: PG::ConnectionBad: PQsocket() ne peut pas obtenir descripteur de socket

j'ai lancé mon rspec et la plupart des tests ont échoué. J'ai eu le même message d'erreur pour eux, qui est:

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

j'ai trouvé un question qui est similaire à mon problème, mais il n'y a pas encore de réponse et j'ai aussi essayé la solution de ce lien, mais ça n'a fait aucune différence pour moi. J'ai ouvert ma console de test et lancé quelques requêtes simples et ça a marché.

10
demandé sur Community 2014-05-13 12:36:33

5 réponses

Il y a peut être un problème avec pg: '0.18.1'. J'ai essayé de revenir à 0.18.0, et je crois que le problème a disparu.

je vais ouvrir un sujet sur le repo après avoir testé un peu plus localement. J'ai ajouté ce question sur le pg repo.

EDIT: j'avais tort. En fait, ce qui a aidé, c'est l'installation du GEM spring-commands-rspec. Je pense que ce qu'il a fini par faire pour moi était de le cacher dans un état où ça marchait. Bien qu'il puisse aussi facilement le mettre en cache un état où il ne l'a pas fait.

2
répondu Brandon J McKay 2018-04-27 17:19:10

Je ne sais pas si les problèmes sont liés - mais j'ai trouvé qu'en utilisant le fichier de socket unix local au lieu de localhost que le problème semblait disparaître pour la question liée; peut-être qu'il pourrait vous aider aussi?

"Râteau spec" à défaut de la plupart des tests, mais "les rails de s" fonctionne correctement sur la Diaspora source

0
répondu Dan Garland 2017-05-23 11:46:27

peut ne pas avoir de rapport avec rspece, mais jeter cela là-bas juste au cas où. Je me suis battu pendant des semaines et pour moi, c'était la façon dont le passager engendre de nouveaux processus. J'ai juste eu à ajouter ce

# 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/

0
répondu wruckie 2017-10-06 20:53:47

j'avais installé 'pg', '0.20.0', en déclassant à 0.19.0 ça a marché pour moi.

0
répondu blitzblade 2018-04-27 10:03:29

j'avais la même erreur, et quelques autres erreurs comme PG::UnableToSend: socket not open. Semblait erreur à des moments aléatoires. Je l'ai tracé et il était en fait dû à un modèle ayant un belongs_to association. Cela pourrait ne pas s'appliquer à vous, mais j'espère que ça aide quelqu'un.

j'ai eu:

belongs_to :user, class_name: User

Quand il aurait dû être:

belongs_to :user, class_name: 'User'

D'une façon ou d'une autre, cette ligne brisait toutes mes connexions PG.

-1
répondu Robert 2017-09-06 08:28:45