Killing long-running actions triggered from UI


#1

If a user triggers an action from the UI that takes longer than the connection.timeoutTime setting in UIConfig, what can be done to ensure that those actions get killed on the server if the requests time out?


#2

To interrupt an action, you will need the action id (which is available to the UI only after the response has come back from the server—via HTTP response headers), and the user doing the action interrupt must be a cluster admin.


#3

Thanks @matt. Can this be handled automatically? In our case for example, a user of the application can run a rollupMetrics from the UI to aggregate some metrics across facilities. If they do so for too many facilities, the action can take much longer than the connection.timeoutTime. So while the API times out and the user gets an error, the action continues to run on the server and consume resources, even though the user will never see the result of the action.


#4

Thanks, @matt. We had an outage in one of the environments when several users did this in one of the application. Is there something we are doing on the UI side automatically to help with stopping /timeout these actions?

We are trying to understand if we have missed setting some configuration that already exists and helps in such scenarios.


#5

No, there’s nothing you can do from the UI once the actions are invoked. So you should look into preventing such actions from being invoked in the first place. Can you place a limit on how many facilities are passed to rollupMetrics?


#6

We will look into that. Thank you @matt.