Închideți decalajul de idempotență al webhook-ului BL0

FixBillingService
Expediere
26 august 2026 la 03:33 UTC
Autor
Kamo
Comite
27d3200

Găsirea 1 (Critical): o cerere de pierdere doar pe un eveniment cu dungi relivrate s-a dovedit că există un rând, nu că încercarea anterioară s-a încheiat. O revendicare rând lăsat în urmă de un eșec tranzitoriu (Yugabyte 40001, a Hikari timeout, o cursă unic-constrângere) părea identic cu un autentic duplicat, astfel încât relivrarea a răspuns 200 și Stripe permanent N-am mai încercat să scriu bani care n-au aterizat niciodată. Adăugat - Nu. (propria sa REquires NOW citeste) deci o cerere pierduta este judecata daca este procesata de fapt Flipped to true; un rând neprelucrat aruncă acum Nu-ţi face griji. în loc să se întoarcă, Controlerul răspunde la 500 şi fereastra de rejudecare de trei zile a lui Stripe rămâne deschisă. Găsirea 2 (Important): MarkProcessed aruncat numărul de rând. A actualizare zero-rând a fost invizibil și a lăsat evenimentul neprocesat în tăcere Pentru totdeauna, cu nimic care să nu cedeze nicăieri. Acum afirmă exact un rând. a fost actualizat și aruncă altfel; javadoc înregistrează Yugabyte raţionamentul de izolare instantanee care face acest lucru sigur astăzi şi fragil dacă o citire a depozitului este adăugată vreodată înaintea cererii. Găsirea 4 (Minor): controlorul înregistrat absent-Strip-Signature- header caz la ERROR, la fel ca un autentic lipsă-secret Misconfiguration. Acest obiectiv este public și accesibil pe internet, astfel încât orice apelant ar putea genera linii ERROR la cerere omiţând header. WebhookNotConfigurat Excepție poartă acum un steag apelantCaused; jurnalele de control WARN pentru header caz și rezervă EROR pentru cazul care este de fapt al nostru pentru a remedia. Teste: fixat ambele direcții ale noii porți de cerere comportamental (StripeWebhookClaimGateTest, cu o sarcină utilă reală HMAC) și prin intermediul forma sursei (StripeWebhookIdemancyTest); marcaProcessed În cazul în care nu se aplică articolul 4 alineatul (1) litera (a) punctul (ii) din Regulamentul (UE) nr. ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** divizat comportamental prin intermediul unei Logback ListAppender Nu-ţi face griji. Verificat toate trei sunt purtător de sarcină prin întoarcerea fiecărui fix la rândul său, confirmând noi teste corespunzătoare merge roșu, apoi restaurarea și confirmarea verde. Apartament complet: 208 teste, 0 eșecuri, 0 erori (până la 193 la 674fa0f).

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile