Hi. A few times now, we’ve run into issues where we weren’t sure what sort of state the surrounding environment was present when a pre commit patch test was done. Additionally, there are times when installing or even updating a component was a challenge. There are some bits that we do not compile or even test as part of the Jenkins run as a result.
After a bit less than a week of work, I’ve managed to get test-patch.sh smart enough to launch and re-exec itself inside a docker container. The container definition is part of the source tree. This effectively means that, after HADOOP-11933 is committed, we’ll be able to have a much greater sense of control over the exact environment that is running during patch test time. We’ll be able to easily add/remove components as necessary. Currently, HADOOP-11933 is awaiting review. But I thought I’d pop this message out here so that more people are aware of the patch as well as if there are any thoughts/concerns/feature requests/etc prior to any potential commit. It should be noted that Jenkins’ precommit has the flags configured such that when test-patch.sh re-exec’s itself to test the patch, it does so in a docker container. In other words, the docker container patch is testing itself in a docker container. :) (Other patches ignore those flags since this patch isn’t live yet.) Thanks.