Nuestro servidor de Discourse entró en un bucle infinito enviando correos electrónicos sin parar. Aquí está la salida de shared/standalone/log/rails/production.log:
Entregado correo 7db8eecd-c36a-419c-ae34-0561b08bae25@community.xx.cc (1322.2ms)
Renderizado user_notifications/digest.text.erb (Duración: 50.1ms | Asignaciones: 12577)
Renderizando user_notifications/digest.html.erb dentro de layouts/email_template
Renderizado user_notifications/digest.html.erb dentro de layouts/email_template (Duración: 139.5ms | Asignaciones: 26910)
Renderizando user_notifications/digest.text.erb
Renderizado user_notifications/digest.text.erb (Duración: 71.7ms | Asignaciones: 13505)
Entregado correo 5bbf2e54-96a8-437d-a032-69f98a00f22a@community.xx.cc (1485.2ms)
Renderizando user_notifications/digest.html.erb dentro de layouts/email_template
Renderizado user_notifications/digest.html.erb dentro de layouts/email_template (Duración: 70.9ms | Asignaciones: 20613)
Renderizando user_notifications/digest.text.erb
Renderizado user_notifications/digest.text.erb (Duración: 38.2ms | Asignaciones: 11390)
Esto comenzó a ocurrir de repente (probablemente cuando se inició el cron de digestos:
Podría estar equivocado, pero creo que lo que sucedió es que los correos electrónicos de resumen se pusieron en cola y ahora se están enviando. Seguirán enviándose hasta que todos se entreguen.
Si tengo razón, puedes desactivar los correos electrónicos, buscar la tabla que los contiene y eliminarlos. Pero volverá a ocurrir la próxima vez que se envíen los correos electrónicos de resumen.
Sí, pero esto lleva ocurriendo 3 días. Todos los demás correos (por ejemplo, los de registro) ya no se entregan. La comunidad funciona, pero todo lo relacionado con el envío de correos no.
Encontré un problema muy similar: Extreme memory usage due to bad mail credentials. Parece que se trata de algún tipo de bug complicado.
La única forma que encontré para detener esto fue eliminar el token de autenticación en mi proveedor SMTP. Discourse comenzó a mostrar cientos de errores y solo después de eso la carga disminuyó. Restauré el token y ahora todo parece estar bien.
@codinghorror He encontrado la causa raíz del problema. Nuestro proveedor de correo eliminó (por sus propias razones estúpidas) los registros de host verificados de nuestra cuenta. Estos registros se utilizaban para proporcionar el campo from en el correo con nuestro host. Así que, después de que lo hicieron, Discourse entró en un bucle infinito. Creo que el flujo de Discourse también tiene un error en ese caso, porque debería reportar el error y dejar de cargar un núcleo al 100%.
Por lo tanto, la cuenta es correcta. Pero el proveedor de correo devuelve un error al enviar el correo: “Host de envío incorrecto” o algo así, y este flujo es lo que causa el problema.