Hi Matt,

I *think* this is because the output site hasn't been set and therefore the GridPP Dirac instance attempts to upload to the Sandbox SE which fails. This would work in LHCb because they have default SEs associated with sites in the Dirac configuration (additionally, this is because LHCb historically only use storage at Tier1s so it's very easy to determine where output data should go). I can't remember the Issue/PR number but this was addressed by Rob's recent DiracFile changes that should allow the SE to be set.

Hope this helps!

Thanks,

Mark

On 19/05/2016 16:36, Matt Williams wrote:
Hi,

I'm one of the developers of Ganga and I've just started looking into
using the GridPP DIRAC server as an endpoint for testing the Ganga
DIRAC interface. We have some old tests that have not run in a while
and used to run against the LHCb server.

It generates a local script at /tmp/tmpITNsT1 which looks like:


#!/bin/bash
echo '1463671701.0 7678619867.41' > sandboxFile.txt
echo '1463671701.0 1646249395.76' > getFile.dst
echo '1463671702.0 9279948101.21' > removeFile.dst


and then uses the DIRAC Python API to do:


from DIRAC.Interfaces.API.Dirac import Dirac
from DIRAC.Interfaces.API.Job import Job
j = Job()
j.setName('InitTestJob')
j.setExecutable('tmpITNsT1','','Ganga_Executable.log')
j.setInputSandbox(['/tmp/tmpITNsT1'])
j.setOutputSandbox(['std.out','std.err','sandboxFile.txt'])
j.setOutputData(['getFile.dst', 'removeFile.dst'])
j.setBannedSites(['LCG.CERN.ch', 'LCG.CNAF.it', 'LCG.GRIDKA.de',
'LCG.IN2P3.fr', 'LCG.NIKHEF.nl', 'LCG.PIC.es', 'LCG.RAL.uk',
'LCG.SARA.nl'])
#submit the job to dirac
dirac=Dirac()
result = dirac.submit(j)
output(result)


The job submits and run fine (for example jod ID 491036) but when it
comes to write the output data I get the attached error which contains
the line:


dm.putAndRegister failed with message Failed to put file to Storage
Element. Hashes don't match!


Now, I assume that we're simply using the API wrong and that the test
is out-of-date with the current state of things but if anyone could
give me a pointer as to where I should start looking that would be
appreciated. I've tried googling for the error message but only found
matches against the source code.

Cheers,
Matt