Machen Sie Post-Commit org Setup tatsächlich schreiben, und heilen die Orgs es verpasst

FixSecurityService
Verschifft
23. August 2026 um 02:45 UTC
Autor
Kamo
Ausschuss
748ae48

Eine @Transaktionale Methode von **************** genannt nicht Transaktion für sich. Frühling feuert diese Rückrufe von processCommit VOR CleanupAsCompletion schaltet die transaktionalen Ressourcen des Threads, so dass die just-engagiert Transaktion ist immer noch aktiv und Standard-REQUIRED-Propagierung nimmt einfach daran teil - und ein Teilnehmer wird nie wieder verpflichtet. Alles, was die Methode schreibt, wird verworfen, wenn die EntityManager schließt, ohne Ausnahme und ohne Log-Zeien. 3903267 verschoben Billing-Sitz-Bestimmungen und das System User Teammitglied-Verfüller aus erstellen Organisation Transaktion in nachCommit, unter einem Kommentar sagen, sie liefen jetzt "in ihrem eigene Transaktionen". Weder wurde geändert, um REQUIRES_NEW, so von diesem Tag an beide nichts geschrieben: - Jeder org, der seither erstellt wurde, hat überhaupt keine Account-Abonnements-Reihe. Sein Besitzer beschließt, MemberCapabilities.unlicensed() - keine E-Mail, keine Meetings, keine Anrufe, keine Anhänge - und nicht Wiederherstellen durch die Anmeldung, weil vielleichtStartTrialOnLogin startet die Uhr auf einem PENDING-Studie, dass wurde nie geschaffen. Die einzige Flucht war der Besitzer geschieht, um Einstellungen zu öffnen . Pläne & Abrechnung, dessen Bootstrap-billing Endpunkt als Fallback für Orgs dokumentiert ist, die vordatiert Abrechnung. - No org hat die Systembenutzer-Mitglieds-Mitgliedschaft POST /enter-wie erforderlich, so dass die Eingabe eines als System-Mitglied antwortet "System Benutzermitgliedschaft fehlt in target org; Backfill pending". Diese Hälfte versteckte sich für zwei Wochen, weil DataLoader eine vollständige Systembenutzer-Verfüllung auf jedem Boot wiedergibt; nur eine org erstellt zwischen zwei Neustarts jemals gezeigt. sicherstellenSystemUser, stellen Sie sicherTeamMemberForOrg und die id-basierte SetupForSubOrgCreation jetzt REQUIRES_NEW. Die Organisation Überlastung hält REQUIRED - ihr Anrufer (AccountController) ist ein gewöhnlicher Antragspfad, der die Transaktion des Anrufers teilen sollte. **************** scannt jeden Nachkommunen Körper im Service, löst jeden field.method(...) ruft zur Quelle des Callees auf und scheitert auf @Transactional ohne REQUIRES_NEW. @Async und CompletableFuture.runAsync sind davon ausgenommen: Ein frischer Faden bekommt eine frische Transaktion, Deshalb waren die E-Mail-Seed- und DNS-Provision Hooks nie betroffen. BillingBackfillService heilt die bereits verlassenen Orgs ohne Abonnement, beim Booten, die Art und Weise die System Benutzer-Backfill tut. Es stellt genau das wieder her, was die Schöpfung geschrieben hätte - eine PENDING-Studie So startet die 3-Tages-Uhr immer noch auf dem ersten echten Login des Besitzers und niemand verliert Bewertungszeit sie bekamen nie zu verwenden. Jede Org wird durch seinen eigenen REQUIRES_NEW Anruf geheilt, so dass eine schlechte org nur kostet selbst, anstatt den ganzen Pass zu verwerfen, den Weg sicherzustellen, dassTeammitgliederForAllOrgs würden.

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