Heroku + Rails + PG: ActiveRecord :: StatementInvalid (PG :: ConnectionBad: PQconsumeInput () La conexión SSL se ha cerrado inesperadamente

Recibo aleatoriamente y con mucha frecuencia el siguiente error en mis registros:

Nov 06 05:31:21 lmrapp app/web.2: [wbinternacional] [0f0965e3-e537-4aed-8f3e-311a222e8fa1] PG::ConnectionBad: PQconsumeInput() SSL connection has been closed unexpectedly Nov 06 05:31:21 lmrapp app/web.2: [wbinternacional] [0f0965e3-e537-4aed-8f3e-311a222e8fa1] Completed 500 Internal Server Error in 23ms Nov 06 05:31:21 lmrapp app/web.2: FATAL: terminating connection due to administrator command Nov 06 05:31:21 lmrapp app/web.2: ActiveRecord::StatementInvalid (PG::ConnectionBad: PQconsumeInput() SSL connection has been closed unexpectedly 

¿Podría ser debido al límite de conexión de mi plan de Pg en heroku (tengo “Hobby-basic” que tiene 20 conexiones)?

Gracias

Estoy recibiendo exactamente el mismo error. También estoy en un Heroku Hobby-básico db. Levanté un boleto con Heroku, aquí estaba la respuesta:

El error “La conexión SSL se ha cerrado inesperadamente” (y algunos similares) es un error del lado del cliente que indica que la conexión con la base de datos se ha ido. Una de las limitaciones de las bases de datos de nivel de hobby es el mantenimiento no anunciado. Ocasionalmente necesitaremos cerrar algunas conexiones a bases de datos de nivel de hobby, y cuando lo hagamos, la aplicación a menudo verá un error como este.

La mayoría de las aplicaciones que mantienen un grupo de conexiones (como ActiveRecord en Rails) pueden abrir una nueva conexión a la base de datos. Sin embargo, en algunos casos una aplicación no podrá volver a conectarse. Si eso sucede, puedes heroku reiniciar ese dinamómetro para obtener un nuevo proceso en un nuevo tiempo de ejecución.

En general, no se recomienda ejecutar bases de datos de nivel de hobby en producción. Sin embargo, si lo va a hacer, es útil configurar su aplicación para que realmente se bloquee en los errores de conexión repetidos de la base de datos; de esa manera, comenzará en un nuevo tiempo de ejecución con un nuevo grupo de conexiones automáticamente.

Sin embargo, parece que esto te ha estado sucediendo mucho; En ese caso, recomendaría una pgbackups: transferencia para mover la base de datos a otro servidor compartido. Tenga en cuenta que las reglas de nivel de pasatiempos se aplican al plan básico de $ 9, así como a la base de datos gratuita. Déjame saber si tienes más preguntas. ¡Gracias!

Para mí, esto significa básicamente que Heroku no se preocupa por corregir este error y desea que usted actualice a la base de datos de $ 50. Ahora estoy ejecutando un sitio pequeño donde obtengo 4-5 usuarios por día, no hay manera de que quiera cambiar a un sitio de producción todavía. Recibo el mismo error que mencionó al menos 5-6 veces / día y aún no he encontrado una manera de solucionarlo. Intente cambiar su db a otro servidor compartido, esto no funciona para mí.

Tengo este problema todo el tiempo y es muy molesto. Especialmente cuando intenta crear una aplicación y no desea pagar $ 50 por mes mientras aún está en desarrollo. Una de las cosas más importantes que he notado que me han ayudado es asegurarse de que no esté ejecutando algo como DB Visualizer u otro DBMS mientras se está desarrollando. Sé que parece contrario a la intuición, pero definitivamente ayuda a mantener el pool de db liberado.

Además, si está ejecutando RoR, puede intentar agregar pool: 1 a su cadena de conexión predeterminada para asegurarse de que su aplicación no esté intentando conectarse a Postgres más de lo que su configuración de Postgres permitirá en Heroku.

 default: &default adapter: postgresql encoding: unicode pool: 1 

Espero que esto ayude a algunas personas por ahí!