dmwm / CRABServer

15 stars 37 forks source link

Write recurring action for data recall #5606

Open mmascher opened 6 years ago

mmascher commented 6 years ago

The action has to take care of two task states, RECALLING and KILLRECALL. A task goes into RECALLING after the splitting if we detect the blocks of dataset are on tape. It goes into KILLRECALL upon a user request through crab kill (he REST detects the state RECALLING)

  1. RECALLING:

  2. KILLRECALL:

    • Get the list of task in state KILLRECALL
    • KILL the request in dynamo
    • Update the state to killed

We might get some progress info from dynamo that we might want to show to the user. We can explore the usage of the warning mechanism for that. Maybe BaseRecurringAction can inherit from TaskAction so that it has addWarning? (https://github.com/dmwm/CRABServer/blob/master/src/python/TaskWorker/Actions/Recurring/BaseRecurringAction.py and https://github.com/dmwm/CRABServer/blob/master/src/python/TaskWorker/Actions/TaskAction.py#L41-L52)

PS Please suggest better names for the states if you don't like them, they are going to be exposed to the user!

belforte commented 6 years ago

about the timestamp, it will be enough to base the timeout decision on the submission time or any other time that we have already in the DB, we will never be to

about the state name: all I can imagine to be nice to users is RECALLING --> RECALLING DATA but it may be enough to do it in crab status. I hate long names

belforte commented 5 years ago

@lecriste I guess this can be closed. Right ?

lecriste commented 5 years ago

No, the KILLRECALL part is missing.

belforte commented 5 years ago

@lecriste what's status of this ? Maybe close and open a new one for what's missing ?

lecriste commented 5 years ago

I started to change the code some time ago, got busy with higher priority things. No need to open another issue.

belforte commented 4 years ago

@lecriste can you remind me the status here ? Do you have work in progress ? All in all if we lived w/o this for 2 years, maybe we can simply say that we never kill a tape recall request once made.

lecriste commented 4 years ago

No work in progress. I noticed that a user could kill a request submitted by another user... shall we allow that?

belforte commented 4 years ago

I am a bit lost. How can a user kill a transfer request (no matter who created it) if this code is not written ?

lecriste commented 4 years ago

He cannot now. If we write the code he could. This may happen when a user B tries to submit a task on a dataset for which another user A has already triggered a tape recall request. The task will go in TAPERECALL status with the same Dynamo request ID of user-A task and if user B issues crab kill, he will kill the transfer request.

belforte commented 4 years ago

THanks for pointing that out. This adds weight to the "let's forget about this". Let's not delete recall requests. Period. We can always revisit later if there is a problem. I will put this on Hold for the time being.

belforte commented 1 year ago

Deleting recall requests is possible now with Rucio since each user places a rule in a different namespace.