There is a custom task that has an accompanying file download. The download file exists on the main server and relays. The SHA1 of the compressed download file matches the sha1 generated by the software distribution wizard.
When this task runs, there is about a 50% chance that it will work the first time. The rest of the time I get this:
Failed continue if {(size of it = 47774308 AND sha1 of it = “44e517ee3eca61895312c88216d3e94c7c2def7a”) of file “DeployRelease1101.tmp” of folder “__Download”}
Obviously either the size or hash is bad if it fails that step, right? If I go to the relay from which it is getting the download, it exists and its SHA1 is the correct value. Likewise the size is byte-for-byte the same.
If I rerun the task to the same clients, it works virtually 100% of the time on the second try. This is making me crazy! Any ideas why this might be happening?
Is there anything similar about the machines it is failing on? (OS, hardware, 32 vs 64, etc)
Add two lines just after the download line, one that checks the size and one that checks the hash… it would be very interesting if one succeeded and one failed (highly unlikely this would happen… just brainstorming)
Does the problem go away if you use the “pre-cache” feature?
Sometimes if the sha1 but not the size is correct, then you will get funny results because only the sha1 is checked for caching (and size is checked only if the file is not yet cached).
Thanks for the tips, I’ll do some more checking. So potentially if a file changed, its sha1 could be different, but the size the same. Conversely, if the file size changes, then the sha1 would have to change. Right?