Stoppen Sie einen Yugabyte Lese-Restart von still töten eine transaktionale senden

FixEmailService
Verschifft
4. September 2026 um 23:55 UTC
Autor
Kamo
Ausschuss
0220d6a

EmailTemplateService.sendToUser ist der Endpunkt hinter jedem Service-to-Service Transaktions-E-Mail auf der Plattform, und es war @Transactional über drei liest: findById(org), die Vorlagen-Lookup, dann die faule Initialisierung der Org's Domain-Reihen innerhalb resolvePrimaryDomain. Das ******************** gflag ist aus auf diesem Cluster, so dass YSQL Karten jede Isolation Ebene auf Schnappschuss Isolierung, und Yugabyte kann einen Leseneustart transparent aufnehmen NUR, wenn die gelesen ist die erste Erklärung der Transaktion. Diese Domain lesen ist die dritte, so dass ein Neustart kam als 40001 Restart-Lesung erforderlich (Abfrageschicht Retry ist nicht möglich, weil dies ist nicht der erste Befehl in der Transaktion) und POST /api/email/templates/send beantwortet 500 . intermittär, ohne zu schreiben überall in der Methode, und ohne Grund sichtbar für den Dienst, der für Fragen die Post. Es wurde berichtet, wie "Nutzer landen auf /verifizierung in Kamo-Register und erhalten keine E-Mail bis sie Resend drücken", das ist vier Hopfen entfernt. SecurityService sendet die Adressverifikations-Mail von ************ dessen @Transactional die Token-Reihe UND den ausgehenden Anruf abdeckt und das Register endpoint nur den Ausfall protokolliert - so ein Neustart hier rollte das Token zurück, während die Register-Website noch umgeleitet /verification, ein Bildschirm, der die Registrant eine E-Mail ist auf dem Weg, wenn keine gesendet wurde und kein Code existiert. Resend lief die gleiche Arbeit in einer frischen Transaktion und kam durch, das ist, was es gemacht gelesen als intermittierend. Passwort-Reset, Begrüßung, Blei- und Dokumentenbenachrichtigungen sitzen auf dem gleichen Anruf und wurden auf die gleiche Weise scheitern. Das Senden enthält jetzt keine Transaktion, so dass jede Lektüre seine eigene implizite Single-Statement-Transaktion - die eine Form Yugabyte startet kostenlos. Die beiden schreibt Umzug zu EmailTemplateWrites, eine SEPARATE Bohne, weil eine Selbst-Berufung erreicht nie den Proxy und @Transactional auf einer selbstbestimmenden Methode ist inert. in der Folge ist die Durchlaufbahn nach SMTP mit dem Fang außerhalb der eigenen Grenze und ist nie wieder gewechselt: ein gescheiterter Zähler, der 500 für eine Nachricht berichtet, die bereits verschwunden ist out ist die genaue Umkehrung dieser Pfad erlitten, wenn instufeUsage zuletzt lief ohne eine Transaktion. open-in-view ist genau richtig gepinnt, anstatt dem Boot-Standard überlassen, weil die faul Domain-Last hängt jetzt davon ab. Nicht halten eine Transaktion über das Logo holt und der SMTP-Seversand lohnt sich für sich allein - der Pool ist zehn Verbindungen breit. TransactionalSendRatchetTest scheitert, wenn die Anmerkung zurückkommt. EmailTemplateServiceTest war schon vorher rot (ein abgestandenes Fünf-Argument überprüfen, gegen einen Sechs-Argument-Segment senden) und ist wieder grün.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen