Most contemporary shells execute each command of a multi-command pipeline in a subshell environment. Environment variables set inside a subshell do not affect the parent shell's environment. Meanwhile, the rrchecker system test sets the ret variable inside a while loop which is the last command in a pipeline. Thus, while error messages will be printed out when named-rrchecker encounters a problem, these problems will not affect the result of the system test. This issue seems to be have been present in the code ever since named-rrchecker was added by commit 49c1e0d18d.