Gary K. Griffey wrote:Ok...followed your list
Almost. I also wanted you to perform a capture, open your VM, close it, and immediately capture the drive again without restarting; and then do the same again with a restart in between stopping the VM and capturing. (And, of course, send a diagnostic report when you're done.)
You stated that when running FSEventer you saw change event being logged for your VM image package. I wanted to see if you could catch OS X reporting a change event for something that happened very recently, but then not report something that should have been saved between restarts.
By the way, what
is the path to your VM fileāthe one that should be in the events history?
So...it appears that OSX and FSEvenetsd are at fault here...your thoughts?
It would appear so, which is disappointing. I can fix QRecall, I can't fix OS X...
It seems that if this was a common issue there would be a lot of "long faces" out there come restore time.
This is the first instance that I've ever seen where file system events didn't record a change event.
I just don't see how Finder could "know" about the directory update but evidently not FSEventsd...
Like I said, there are two sources of file system change events: The live event stream that is broadcast to procsses as events occur and the historic events recorded on the volume. The Finder subscribes to the live stream. QRecall, Time Machine, and so on request historic change events. (Actually, that's not entirely true; Both Time Machine and QRecall request historic events, and then switch to the live stream during the backup so they can catch additional changes as they happen.)
But the point is, just because file system events detects and broadcast a change event doesn't (apparently) guarantee that it's also getting saved and replayed in the future.
Also, any suggestions or thoughts as to why FSEventsd is not working?
I'd like to stick with the theory that the fseventsd process is receiving change events, but failing to record them permanently for some reason. So after running the experiment that I mentioned above, try this experiment:
In the Terminal, issue this commands:
$ sudo mv /.fseventsd /fseventsd-suspect
(you'll be prompted for your password)
$ sudo chown -R $UID /fseventsd-suspect
Restart your computer.
Now perform the "capture, run VM, restart, capture" sequence again and see if it works any differently.
If that works, then there may have been something weird with the records stored in your .fseventsd folder. Please archive the fseventsd-suspect folder you'll find at the root of your hard drive and e-mail that to me. I'd like to include it my bug report to Apple.
could the VMWare Fusion application somehow be suppressing this from FSEventsd?
There's no official API for doing this. An application can flush (erase) all of the history on a volume and there's a means for disabling file system events on a volume, but there's no API for selectively deleting or suppressing change events for an individual folder.
Apple does provide an API for excluding individual items from a Time Machine backup, but that shouldn't interfere with file system events. If it is, then that's a bug.
But as I mentioned very early on, it might have something to do with the nature of the VMWare system. Virtual machines interface with the operating system at a
very low level. It's entirely possible that VMWare is making changes to the file system in such a way that the operating system isn't seeing it, or doesn't believe that it's significant enough to record for posterity. It's also possible that VMWare doesn't like Time Machine trying to copy its VM image and has figured out how to "hack" the file system events service into not recording specific changes.
Out of curiosity, does the VMWare system provide any means of automatically running a script, ideally when the VM shutsdown? It might be possible to work around this problem by adding a script that touches the VM image whenever you shut down.
Another thing you might try is create a second capture action the captures just the VM Image package. Assuming the package doesn't have subfolders, QRecall always captures the items that are in its capture set. It only consults the file system events to determine if subfolders need to be captured. In essence, this would ignore file system events for the one VM image folder.