How integrity checking works

When an LSZ request is made and the request contains a hash, Nomad on DP computes a corresponding hash for the content on its disk. If the computed hash does not match the hash sent by the client, the content is considered corrupted; if it matches, the content is considered good (see the example for the nomadbranch.log below 

The process for the download is:

  1. Clients retrieve this LSZ and check it for any errors. 
  2. If they evaluate an error (illustrated above), they quit the download immediately. 
  3. If not, the download proceeds normally.

We also need to make sure that we have compatibility flags set correctly on the DP and Client respectively as follows:

  • 0x80000: Set this flag on the DP – without it, Nomad will not perform integrity checks for SIS content and corrupted content will get through
  • 0x100000: Set this flag on all clients – it ensures that they quit gracefully when they receive a corrupt LSZ. Otherwise, they are likely to get stuck into an infinite loop.