89799969 opened a new issue, #4203:
URL: https://github.com/apache/rocketmq-dashboard/issues/4203

   ### Description
   
   `AlertService#acknowledgeAlert` persists two related pieces of state:
   
   1. it marks the selected `rmq_system_alert` event as acknowledged; and
   2. for the matching FIRING occurrence, it changes `rmq_alert_state` to ACKED.
   
   The service method currently has no transaction boundary. If the second 
database write throws after the event update succeeds, the request fails but 
the event remains acknowledged while the active state remains FIRING. The state 
machine may then continue producing reminder notifications for an event that 
the UI already shows as acknowledged.
   
   This is distinct from the expected stale-occurrence case where 
`AlertStateRepository#acknowledge` returns `false`: an old event may still be 
acknowledged without changing a newer incident. The inconsistent state here is 
caused by a persistence exception midway through the current occurrence update.
   
   ### Expected behavior
   
   The event acknowledgement and matching active-state acknowledgement should 
commit or roll back atomically when both writes are attempted.
   
   ### Proposed fix
   
   Add a transaction boundary to `AlertService#acknowledgeAlert` and cover both 
rollback-on-failure and successful retry with an H2-backed integration test.


-- 
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