Post in rapida successione non inviano tutte le email

Questo forum deve approvare tutti i post. Di conseguenza, alcuni post vengono pubblicati in rapida successione: quando un moderatore accede, approva i post uno dopo l’altro in tempi molto brevi.

La maggior parte delle categorie è impostata su “monitoraggio” per tutti gli utenti e quasi nessun utente accede; il forum si affida in modo molto pesante alle notifiche via email.

Il problema è che ogni volta che i post vengono pubblicati in rapida successione (a distanza inferiore a 1,5 minuti), non tutte le email vengono inviate. Questa query mostra il conteggio di tutte le email inviate (voci in email_logs per argomento). Il numero di utenti che dovrebbero ricevere un’email è di circa 2250. Quando gli utenti hanno effettuato l’accesso di recente (circa l’1%), non ricevono l’email, quindi il numero varia leggermente ma dovrebbe essere compreso tra 2200 e 2250.

Come si può vedere nelle prime tre righe, i post pubblicati rapidamente uno dopo l’altro non hanno il numero completo di email.

Cosa potrebbe star succedendo qui?

Ah, max_emails_per_day_per_user è impostato su un valore molto alto.


colonne: argomento, data/ora, categoria, # email inviate

Negli ultimi mesi abbiamo acquisito nuove informazioni:

  • il problema non riguardava le email vere e proprie, ma la generazione delle notifiche sottostanti
  • generare molte notifiche in rapida successione porta Sidekiq a riavviarsi con il messaggio Sidekiq is consuming too much memory
  • il riavvio di Sidekiq porta al fatto che l’attuale batch di notifiche che viene generato per un post venga interrotto, con conseguente set incompleto di notifiche.

EDIT aumentare UNICORN_SIDEKIQ_MAX_RSS ha impedito che questo problema si verificasse di nuovo negli ultimi 9 giorni.