Updating site parameters using the API may freeze the variation job

As you probably know if you read my blog, we like to automate as much as we can our WCM portal deployments.  One of the thing we do is to update the Publishing Navigation to hide some sites/pages or simply re-order them correctly.  Unfortunately, when you have variations and you want to automate this for all languages, you have to specify some kind of "sleep" time so that it waits for the Variation Timer Job to kick in and create the site in all labels.

 

Obviously, the sleep time period is guess work and is different on all servers (even on the same one!).  During the first attempts, our sleep timer was rather low and we noticed that if we tried opening a site in a target variation/label while the variation process was doing its work, the process was simply stopping!  I tried restarting the OWSTIMER service, rebooting the server, wait a day ... but no luck, it simply wasn't picking up again.  The Timer Job definitions were still 'running' every minutes, they simply didn't check if there was any updates to propagate.

 

Unfortunately, so far, I haven't found a way to fix it and to be honest, we simply delayed running our updates on all labels to a later stage.  While I did take a look at trying to 'kick start' the process, I didn't go very deep and if I have the issue again, I'll try Gary Lapointe's variation relationship fix (which is VERY interesting and practical even if you don't have the issue I outlined here).  If that doesn't work, I'll go see if the relationship are created anyway but it's the Timer Job that cannot read them anymore.  I'll update the post when I have the time to reproduce the error and debug it.

 

Maxime