バグが発生していました。原因は AND 演算すべきところが OR 演算になっていたからなんですが、このバグがなぜか logmes を入れると直るというよくわからない事態が発生して。そこで、 logmes を #undef して、変数にログを出力するものに定義し直したりしてデバッグしたんですが・・・。なぜ logmes を入れると直ったのか、今でもさっぱりわかりません。logmes を入れることで stat の内容がかわったとか?
logmes
#undef