A Restricted node label of the form (a || b ||c) && ! D does not exclude nodes with label D.
We have been running this job on all nodes with any of the first three labels for some time, but recently found that we have to exclude a few nodes. Since they still need the b label which includes them, for other things, we decided to use the existing 4th label to exclude them.
However, the nodes are still included, even though they do have the D label. I have verified otherwise that the label expression used is correct.
Wondering if the ! was the issue, I found another combination ((a || b) && E) || c, which produced the same set of nodes, but that failed to include a node which should have been picked up.
Not critical, since we use the first option and are easily enough able to fail the jobs if the run on an ineligible node, but it would be nice to have it working propoerly