DIRAC icon indicating copy to clipboard operation
DIRAC copied to clipboard

getRequestFileStatus considers done files that are in canceled request

Open chaen opened this issue 5 months ago • 0 comments

TLDR: if a Request is canceled when having replicated everything and registered nothing, it ends up being Processed in the TS

In [2]: ReqClient().getRequestStatus(54974805)
Out[2]: 
{'OK': True,
 'Value': 'Canceled',
 'rpcStub': (('RequestManagement/ReqManager',
   {'timeout': 600, 'useAccessToken': False}),
  'getRequestStatus',
  [54974805])}

# This is wrong !!!

[buggyReq.json](https://github.com/user-attachments/files/21147543/buggyReq.json)

In [3]: ReqClient().getRequestFileStatus(54974805,['/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst'])
Out[3]: 
{'OK': True,
 'Value': {'/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst': 'Done'},
 'rpcStub': (('RequestManagement/ReqManager',
   {'timeout': 600, 'useAccessToken': False}),
  'getRequestFileStatus',
  [54974805,
   ['/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst']])}

In [21]: print(req.RequestName, req.Status)
    ...: for op in req:
    ...:     print("  ", op.Type, op.Status)
    ...:     for f in op:
    ...:         if f.LFN == '/lhcb/LHCb/Collision24/TRACKEFF.DST/00276127/0057/00276127_00576011_1.trackeff.dst':
    ...:             print("    ", f.Status)
    ...: 
00298938_00022921 Waiting
   RegisterReplica Waiting
     Waiting
   ReplicateAndRegister Done
     Done

chaen avatar Jul 09 '25 17:07 chaen