Bucle infinito en el envío de correos electrónicos de resumen

Hola a todos.

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:

)

Ahora, un núcleo está completamente ocupado enviando correos de digestos.

  • Reconstruir la aplicación no ayuda;

  • Actualizar a la última versión: sin cambios;

  • Activar “Deshabilitar correos de resumen para todos los usuarios” y reconstruir la aplicación: sin cambios;

    #### Instalado
    
    ### 2.4.0.beta5
    

¿Qué más puedo hacer? ¿Cómo puedo detener esto?
Gracias de antemano.

1 me gusta

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.

1 me gusta

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.

1 me gusta

¿Tuviste credenciales de correo electrónico incorrectas?

@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.

2 Me gusta

Estoy de acuerdo, esta es una mala situación en la que estar y deberíamos manejarla mejor.

1 me gusta

¿Está todo de vuelta a la normalidad ahora?

Sí. Después de cambiar las credenciales del correo.

1 me gusta