I have some more information about this problem. It's easy to trigger this bug with the attached code.
They key is to rename a non-ignored file to an ignored file (like one that ends with ~). The inotify processor
currently ignores this possibility so the rest of the state machine never learns the original file has gone
away.
I updated my branch to make the inotify processor synthesize a delete event for this case. I left the
check I put in as it just seems safer. I was, for example, able to trigger the bug by setting the file to
be totally unreadable after touching it.
I have some more information about this problem. It's easy to trigger this bug with the attached code.
They key is to rename a non-ignored file to an ignored file (like one that ends with ~). The inotify processor
currently ignores this possibility so the rest of the state machine never learns the original file has gone
away.
I updated my branch to make the inotify processor synthesize a delete event for this case. I left the
check I put in as it just seems safer. I was, for example, able to trigger the bug by setting the file to
be totally unreadable after touching it.