Nous avons reçu à plusieurs reprises des appels de clients qui se plaignaient de comportements étranges avec les plans d’exécutions. Les sauvegardes exécutées dans leur contexte « débordaient » parfois de la plage horaire qui leur était assignée… Un comportement en contradiction avec le cahier des charges de cette fonctionnalité, censée délimiter strictement un horaire dans lequel les tâches devaient s’exécuter.
Une rapide inspection de leur serveur a permis de déterminer que certaines sauvegardes devant être exécutées dans le cadre de plans d’exécution possédaient également des paramètres individuels de planification, ce qui est la cause de ce qu’ils identifiaient comme un dysfonctionnement du logiciel.
Conceptuellement, il y a deux manières d’exécuter automatiquement une sauvegarde :
- Soit la sauvegarde est déclenchée de manière autonome par l’agent client, en fonction des paramètres de planification qui lui sont associés,
- Soit la sauvegarde est déclenchée par le serveur de sauvegarde dans le cadre d’un plan d’exécution. Dans ce cas, l’exécution est totalement pilotée par le serveur, qui décide quand lancer, relancer ou interrompre la tâche.
Mixer les deux modes de fonctionnement est une mauvaise idée. Non seulement cela sort de la logique précédemment exposée, mais cela peut aussi perturber l’exécution des plans d’exécutions. En effet, dès qu’une sauvegarde possédant des paramètres de planification est interrompue d’une manière qu’il considère comme « non prévue », l’agent client relance automatiquement la tâche. Par conséquent, le système serveur gérant les plans d’exécutions peut entrer en concurrence avec l’agent client pour démarrer ou redémarrer l’exécution de certaines tâches, alors que celles-ci devraient être abandonnées – la plage horaire du plan n’étant plus active. D’où le comportement inhabituel remarqué par l’utilisateur, dont il avait raison de se plaindre.
De ce fait, la version 5 d’UltraBackup vérifie systématiquement que les sauvegardes susceptibles d’être exécutées dans le cadre d’un plan d’exécution ne possèdent pas de paramètres de planification, et dans le cas contraire affiche un message d’information permettant de réinitialiser la planification :