Steps to reproduce:
- edit something that's symlinked (e.g. PrivateSettings.php)
- scap
- CLI scripts will use the updated code but the web page will not, for hours at least; presumably because the symlink's timestamp did not change so HHVM uses its cached version
- touching the symlink will make the webpage update
Observed on the beta cluster.
Scap should make sure the last-modified date of the symlink is not older than the last-modified date of the original, to prevent this.- It is far from straightforward to
- Find the symlinks pointing to any given file
- Modify the symlink's mtime
- This isn't even supported on some platforms
- The expectation is that you resolve the symlink and take the mtime of the target, not the symlink it's self, so hhvm is doing it wrong.
- There doesn't seem to be a native python method to modify the timestamp of a symlink
- The functionality was added to touch only somewhat recently
- A much more productive thing to work on is eliminating symlinks - many of them are not needed.