tju-yxq opened a new pull request, #2670: URL: https://github.com/apache/rocketmq-dashboard/pull/2670
Fixes #2661 A notification outbox row is currently claimed for one minute while the SMTP or webhook call runs synchronously. If that call is slow, another Studio replica can reclaim the row and send the same alert. In addition, an audit insert failure after a successful send falls into the send retry path. This change: - renews the current claim during an in-flight delivery, using the claim token as the ownership guard; - requires SENDING plus the matching token for every terminal or retry update, so a stale worker cannot overwrite a newer claim; - commits the delivery state before recording the audit entry and isolates audit failures from delivery retries; - keeps genuine SMTP/webhook failures on the existing bounded retry path; - documents the claim timeout, renewal interval, and bounded heartbeat thread settings. Regression coverage includes a blocked SMTP send with a successful renewal, lease loss during an in-flight send, a state-write failure after external success, and an audit failure after the row is marked delivered. ## Testing - mvn -q '-Dtest=NotificationOutboxServiceTest' test (16 tests) - mvn -DskipTests=false test (1,792 tests; 0 failures, 0 errors, 0 skipped; Checkstyle 0 violations) - git diff --check The GitHub workflow may still be affected by the repository's Docker Actions policy; no workflow changes are included here. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
