I ran into an error while distributing a custom built parcel. It can be reproduced with an empty parcel as well. Steps to reproduce: Create a directory with a minimal set of files to build a parcel. Dummy-0.0.1 └── meta ├── defines.sh └── parcel.json Build a parcel, calculate the .sha file for it and copy both files to a parcels repo. tar czvf Dummy-0.0.1-el7.parcel Dummy-0.0.1
sha1sum Dummy-0.0.1-el7.parcel | cut -d ' ' -f 1 > Dummy-0.0.1-el7.parcel.sha
cp Dummy-0.0.1-el7.parcel* /opt/cloudera/parcel-repo/ You can successfully distribute and activate the parcel from Cloudera Manager. Do it. This is where we start reproducing the actual error. Let's say we changed a piece of code in the parcel and we want to deploy a new version of it, but we've forgotten to update the parcel's version in parcel.json. Just copy the Dummy-0.0.1 directory to Dummy-0.0.2 and repeat the step 2. Now in Cloudera Manager you should see the new version of the parcel, but if you try to distribute it, you'll get an error: Error when distributing to <node1>: Ignoring parcel with inconsistent naming. Directory: Dummy-0.0.2, Manifest: Dummy-0.0.1. That's correct, let's fix the parcel.json file and try again. Delete .parcel and .sha files, update the version in parcel.json to 0.0.2 and repeat the step 2 once more. Now you have correct .parcel and .sha files in repo. Try to distribute them. You'll have the same error. If you check your parcel file in the repo, you'll see that it surely contains the correct version number in parcel.json, but when you check the version in the /opt/cloudera/parcels/Dummy-0.0.2 (the error is thrown after the files are successfully delivered to the nodes) you'll see that the version there is still 0.0.1 An obvious workaround is to simply update the parcel version once more and deploy it without making the stupid mistake I've made, but it still seems like a bug to me. At least, the behaviour and the error message are not very intuitive.
... View more