Cloning Machines and Race Conditions


While I've been playing with VMWare Fusion, I've simultaneously been doing some testing of NextPage's Document Retention product for an InfoWorld review. I needed two machines, so naturally, I used virtual machines (in Parallels, as it turns out).

Being lazy, I did as much set up on one machine as I could before I cloned it. I recognized that I needed different identities on these machines for my test, so I got two different activations from NextPage, but if I hadn't, would the software have worked, seemed like it worked, or failed completely?

I'm not talking about "work" in the sense of would it run. This isn't a licensing issue (although that's a related question). I'm wondering whether the different instances that all thought they were acting on behalf of me would have been able to cope with the issue of having multiple copies running.

This isn't just a NextPage thing. It's true of most software. For example, if I set up a mail client and then clone the machine, I could have some of my mail being downloaded to one machine and some to another depending on the interleaving and how mail arrives. The mail client seems to work, but it's probably going to mess me up at some point. We've got a race condition that is not being handled.

On the other hand, I'd expect the C compiler on both machines to continue to function just fine regardless of being cloned. The compilers operate completely independent of each other.

It seems that any software that has a dependence on some other networked service will have to adjust to the widespread adoption of virtualization technology. Sometimes, like with NextPage, the answer will be "don't do that." But other times, machine cloning is going to run afoul of this problem where the user has a perfectly legitimate reason for running the software on cloned machines.