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]

Reply via email to