packaging all the snapshots from the ends of branches (even just verifying that nothing has changed which needs a new snapshot) takes a long time. on s.d.o it was on the order of 45 minutes. the trial run on d.o was over an hour (though that was obviously the worst-case). meanwhile, the packaging run for the tag-based official releases is very fast, and is configured to run every 5 minutes. so, while the branch snapshot run is going on, the tag release run will be invoked at least a few times, maybe a dozen or more. if you were unlucky, the snapshot and official release runs that were chugging away simultaneously could decide to work on the same contrib at the same time, and nasty undefined results would be produced.
luckily, there's a trivial solution: have each kind of run always work in its own subdirectory of the specified tmp dir. the script is already invoked with an arg that tells it what to do ("branch" vs. "tag"). so, we just use $tmp_dir/$task as our real $tmp_dir. i added a simple initialize_tmp_dir() that does a little sanity checking, tries to create $tmp_dir/$task if it doesn't already exist, and sets the global $tmp_dir to that for the rest of the life of the script.
potential badness solved. ;)
| Comment | File | Size | Author |
|---|---|---|---|
| package-release-nodes-no-race.patch.txt | 1.92 KB | dww |
Comments
Comment #1
dwwdries updated the copy on d.o, and my script just confirmed all the md5 hashes are valid.
Comment #2
(not verified) commented