« VMWare Fusion Beta 3 Released | Main | Barnett's Grand Unifying Theory »

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.

Posted by windley on April 6, 2007 2:56 PM

See related posts:

1 Comments

I'm not sure that virtualization technology will ever be spread so widely that mainstream networked services will have to adapt to it. It seems to me that virtualization will still remain a feature used only by the most technically-oriented, who will be required to adapt their implementation of the virtualization to meet the requirements of the network services they're using.

For instance, rather than the mail client providing an update to handle running on multiple machines, you'll have to set up two accounts or pick one to be the 'main' account and have the other pull from it rather than from the network source.

If I may say so, you're in a very particular subset of "lazy" people -- those who are both lazy and able to replicate a custom, pre-configured machine through virtualization for a tech review they're writing for a magazine.

Leave a comment

I encourage you to leave a comment below. Your email address will not be displayed on Technometria, but allows me to communicate with you directly. Your email address won't be displayed, but will be used to compute a MicroID for your comment.