inotify queues IN_MOVED_FROM and IN_MOVED_TO of a rename one after the other. The watcher thread could read the first before the second was queued and report a rename inside the directory as a move to another directory (NOTE_WRITE | NOTE_EXTEND instead of NOTE_WRITE), which made guest_kqueue abort on loaded runners. The watcher now reads the queue until it is empty and, when a move half has no partner, calls getdents64 on the directory before reading again: that takes the directory lock rename holds until both halves are queued. |
||
|---|---|---|
| .. | ||
| debt | ||
| ARCHITECTURE.md | ||
| BUILD.md | ||
| CONVENTIONS.md | ||
| HW_ORACLE.md | ||
| PROGRESS.md | ||
| TechnicalDebt.md | ||