BBI-23 | Implement 'injections' to workaround reproducible import failures. The 'p4 re...concile' command BBI process relies on is unable to detect "symlink refactoring conversions." For example, if a file or directory is replaced by a symlink of the same name between baselines, the UPDATE action for the second baseline will fail. (See also: job000441). It might seem elegent to try and detect all possible refactoring scenarios and deal with them all appropriately. However, there are challenges with doing proactive detection, esepcially on large baselines. Another option is to simply attempt submits first, and then react when the submit fails, e.g. looking for 'readlink:' errors, telltale signs of symlink refactoring conversions. But since the realm of things that can break an import is large, even with the relatively basic BBI approach, a very pragmatic "injection" approach is needed. This is an approach whereby a any symlink refactorying issues (or any other reproducible issues!) that break imports are discovered via a trial-and-error process. Once discovered, an 'injection' script is created to address the specific issue for that specifc baseline. Whenever there is a baseline UPDATE action that fails for some reproducible reason, you figure out why, and put together an "injection," a hand-crafted bash shell script that replaces manual processing a human operator might do to workaround issues. So if a file gets converted to a symlink, the 'p4 rec' will fail on the first pass. Then an injection is created, which can simply delete the file and submit it. « | |
Add Job |