- Spegnimento
- 4 settembre 2026 alle ore 23:55 UTC
- Autore
- Kamo
- Impegno
- 0220d6a
EmailTemplateService.sendToUser è il punto finale dietro ogni servizio-servizio email transazionale sulla piattaforma, ed è stato @Transactional oltre tre letture: findById(org), il lookup modello, quindi la pigrizia inizializzazione dell'org righe di dominio all'interno risolvePrimaryDomain. E' il momento giusto. gflag è spento su questo cluster, quindi YSQL mappa ogni livello di isolamento sull'istantanea isolamento, e Yugabyte può assorbire un riavvio di lettura trasparente SOLO quando il letto è la prima dichiarazione della sua transazione. Quel dominio letto è il terzo, quindi un riavvio è venuto fuori come 40001 Riavviare letto richiesto (la riprova dello strato di essiccazione non è possibile perché questo è non il primo comando nella transazione) e POST /api/email/templates/send ha risposto 500 — intermittentemente, senza scrivere ovunque nel metodo, e per nessun motivo visibile al servizio che ha chiesto la posta. E 'stato segnalato come "gli utenti sbarcano su /verification in kamo-register e non ottenere e-mail fino a premere Resend", che è a quattro luppolo di distanza. SecurityService invia il E-mail di verifica dell'indirizzo da... il cui @Transactional copre la riga di token E la chiamata in uscita, e il registro endpoint ha registrato solo il fallimento — quindi un riavvio qui ha rotolato il token indietro mentre il sito del registro ancora reindirizzato a /verification, uno schermo che racconta registrant un'e-mail è in arrivo quando nessuno è stato inviato e nessun codice esiste. Invia ha eseguito lo stesso lavoro in una transazione fresca e ha superato, che è quello che ha fatto leggere come intermittente. Ripristino password, benvenuto, lead e le notifiche di documento siedono sulla stessa chiamata e stavano fallendo allo stesso modo. L'invio non contiene alcuna transazione, quindi ogni lettura è implicita transazione a stato singolo — l'unica forma Yugabyte riavvia gratuitamente. I due scrive passare a EmailTemplateWrites, un fagiolo SEPARATO perché un'autoinvocazione mai raggiunge il proxy e @Transactional su un metodo auto-invocato è inerte. incrementUsage corre dopo SMTP con la cattura al di fuori del proprio confine ed è mai rethrown: un contatore fallito che segnala 500 per un messaggio che è già andato out è l'inversione esatta questo percorso sofferto quando incrementUsage ha funzionato senza una transazione. open-in-view è pinned true piuttosto che lasciato al default Boot, perché il pigro il carico di dominio ora dipende da esso. Non tenendo una transazione attraverso le fetches logo e l'invio SMTP vale avere da solo — la piscina è larga dieci connessioni. TransactionalSendRatchetTest non riesce se l'annotazione torna. EmailTemplateServiceTest era già rosso prima di questo (uno stante cinque argomenti verificare contro un mandato di sei argomenti) ed è di nuovo verde.