Revise.jl randomly fails to notice rsynced code changes

I’ve been using Revise.jl successfully on my local system, but on my remote server (x86-64 linux with nightly Julia), it will silently fail to use new code that I’ve rsynced over.

I can confirm that the remote files are changed and their modification times are correct. I can toggle a single value and about 50% of the time, the change will be picked up, but the other half of the time, the change will never be noticed, regardless of how long I wait.

If I edit the code directly on the remote server in an editor, Revise.jl always notices the changes, so the problem appears to be related to how rsync modifies the files.

Any ideas on what could be wrong or how to debug it further?

The details here would be very important (filesystems, whether they support inotify, how exactly you start the Julia processes, and rsync). I would suggest you create a simple way to reproduce this and then report an issue with Revise.

When doing this, please take advantage of Revise’s excellent introspection facilities:

https://timholy.github.io/Revise.jl/stable/debugging/

to provide detailed information.

2 Likes

Thanks. I don’t understand exactly what’s going on, but the problem appears to be related to rysnc -a preserving the local mtimes when copying over files. When I use rsync -a --no-times (which updates mtimes to current time), Revise.jl works properly.

Exactly the same problem occurs in my case, and your solution works for me as well with a slight difference: rsync -I.