The brick code does things like try/except putils.ProcessExecutionError all over the place. This is fine if the executor that's set up is in fact common/processutils, however if it's a wrapped version such as cinder/utils or nova/utils these exceptions are caught.
There are other places in the Cinder code where this can be an issue as well since we allow a set executor on the driver. The reality is that only time we really do this is for unit tests, so it may be worth considering not allowing the passing in of executors in the future and just hard code which one to use instead, in the case of unit tests this will create a bit of a mess to work through, we would need to replace passing in the fake-executor via init with a mock.
I can change the external brick lib to always use putils in the executor.
I'll look at doing this after the brick lib has been removed from cinder.