Fermer l'écart de idémpotency de BL0 de l'examen final trouvé

FixBillingService
Expédié
26 août 2026 à 03:33 UTC
Auteur
Kamo
Commite
27d3200

Constatation 1 (critique): une réclamation perdante sur un événement Rayonné refait uniquement Il a été prouvé qu'il existait une querelle, et non que la tentative antérieure se terminait. Une réclamation rangée laissée par une défaillance transitoire (Yugabyte 40001, un Hikari temporisation, une course de contrainte unique) semblait identique à une véritable course Doubler, donc la relivraison a répondu 200 et Stripe de façon permanente J'ai cessé de réessayer un écriture d'argent qui n'a jamais atterri. Ajouté (sa propre REQUISAIS-NE-NOUVELLES lire) de sorte qu'une réclamation perdante est jugée sur la question de savoir si elle est effectivement traitée basculé sur vrai; une ligne non traitée lance maintenant au lieu de revenir, de sorte que le Le contrôleur répond 500 et la fenêtre de trois jours de rayure reste ouverte. Constatation 2 (perte): marqueRejeté du nombre de rangées. A La mise à jour zéro-ligne était invisible et laissait l'événement silencieusement non traité pour toujours, sans rien échouer nulle part. Il affirme maintenant exactement une ligne a été mis à jour et lance le contraire; le javadoc enregistre le Yugaoctet un raisonnement instantané qui rend cela sûr aujourd'hui et fragile si un dépôt lu est jamais ajouté avant la réclamation. Constatation 4 (Minor): le contrôleur a enregistré l'absence de signature de la bande de roulement cas d'en-tête à l'ERROR, identique à un véritable secret manquant mal de configuration. Ce point d'extrémité est accessible au public et à l'Internet, donc tout appelant pourrait générer des lignes ERROR à la demande en omettant en-tête. WebhookNotConfiguredException porte maintenant un drapeau calleurCaused; le contrôleur enregistre WARN pour le boîtier d'en-tête et réserve ERROR pour le cas qui est en fait le nôtre. Essais: actionnés dans les deux sens de la nouvelle porte de revendication comportementa (StripeWebhookClaimGateTest, avec une charge utile attribuée à HMAC) et via forme de source (StripeWebhookIdempotencyTest); la marqueProcessé l'assertion comportementale avec un référentiel moqué - et l'AVERT/AVERT division comportementale par l'intermédiaire d'un Logback ListAppender - Les trois sont vérifiées en renversant chaque fix à tour de rôle, confirmant les nouveaux essais correspondants sont rouges, puis restauré et confirmés en vert. Suite complète: 208 tests, 0 défaillance, 0 erreur (contre 193 à 674fa0f).

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation