Mise à jour: cela s'est produit deux jours de suite.
Mise à jour: XML des tâches planifiées et des images désormais incluses.
Deux serveurs situés à Londres, les deux Windows 2012, ont une tâche planifiée pour s'exécuter à 15 heures du lundi au vendredi. Cela a été mis en place sans problème depuis 5 mois.
Cependant, le lundi 28 août, ils ont tous deux exécuté la tâche prévue à 15 heures, puis à 16 heures. Quand il a été signalé pour la première fois, je pensais que c'était trop une coïncidence pour être le lendemain du retour d'une heure. Cependant, je n'arrive pas à expliquer pourquoi cela s'est produit et si cela est lié au changement d'horloge.
Les journaux pertinents d'un serveur (les journaux de l'autre suivent également ce modèle):
Événement 129 15:00:20 Tâche de lancement du planificateur de tâches "\ 3pm", instance "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" avec l'ID de processus 2388.
Événement 100 15:00:20 Le Planificateur de tâches a démarré l'instance "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" "de la tâche" \ 15h "pour l'utilisateur" x \ y ".
Event 200 15:00:20 Le Planificateur de tâches a lancé l'action "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" dans l'instance "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" de la tâche "\ 15h ".
Événement 201 15:00:23 Le Planificateur de tâches a terminé avec succès la tâche "\ 3pm", instance "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", action "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "avec le code retour 0.
Événement 129 16:00:20 Tâche de lancement du planificateur de tâches "\ 3pm", instance "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" avec l'ID de processus 1224.
Événement 100 16:00:20 Le Planificateur de tâches a démarré l'instance "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" "de la tâche" \ 15h "pour l'utilisateur" x \ y ".
Événement 200 16:00:20 Le Planificateur de tâches a lancé l'action "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" dans l'instance "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" de la tâche "\ 15h ".
Événement 201 16:00:23 Le Planificateur de tâches a terminé avec succès la tâche "\ 15h", instance "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", action "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "avec le code retour 0.
J'ai vu cette tâche planifiée s'exécuter deux fois de temps en temps, ce qui indique qu'un bogue à http://support.microsoft.com/kb/2461249 en est la cause. Cependant, cela n'inclut pas Server 2012 dans sa liste de systèmes d'exploitation problématiques.
J'ai du mal à expliquer cela, quelqu'un d'autre peut-il?
L'exportation XML pour la tâche planifiée est:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2013-04-16T14:04:17.4897806</Date>
<Author>x\y</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2013-04-17T15:00:20</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>x\y</UserId>
<LogonType>Password</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"C:\Program Files (x86)\PHP\v5.4\php.exe"</Command>
<Arguments>-f "c:\a.php"</Arguments>
</Exec>
</Actions>
</Task>
29 octobre 17h00 - Mise à jour - Les deux serveurs ont à nouveau exécuté la tâche planifiée à 15h00 et 16h00. J'ai maintenant mis à jour le fichier php qui est exécuté par le planificateur pour ne rien faire pendant que j'essaie de résoudre ce problème. Je prévois de redémarrer un serveur pour voir si cela change quelque chose demain.
30 octobre 08:25 - Mise à jour - Lors de l'exportation du XML de la tâche, je me suis souvenu que je n'avais pas inclus le fait que la tâche planifiée sur le deuxième serveur avait été créée en important le XML de la tâche créée sur le premier. La seule différence entre les deux tâches est le chemin du fichier php qu'elles exécutent et le compte utilisateur sous lequel elles s'exécutent.
30 octobre 16:30 - Mise à jour - Le serveur qui a été redémarré ne montre plus ce comportement, la tâche planifiée s'est exécutée une fois dessus. J'attendrai quelques jours avant de redémarrer le deuxième serveur au cas où quelqu'un aurait des idées pour diagnostiquer pourquoi / comment cela s'est produit
06 novembre 18:00 - Mise à jour - Nous avons appliqué toutes les mises à jour au deuxième serveur et redémarré. Nous avons supposé que cela résoudrait le problème, mais le 15h a de nouveau fonctionné deux fois - une fois à 15h et à 16h. J'ai regardé d'autres travaux prévus et ils n'ont couru qu'une seule fois.
la source
Réponses:
Nous venons de remarquer le même problème sur nos serveurs de production (également Windows Server 2012), qui s'est produit cette semaine. Cela a également commencé après le retour d'une heure de nos horloges (c'était le 3 novembre 2013, ici à Toronto).
Mise à jour au 12 novembre 2013:
En outre, après de nouvelles discussions avec Microsoft (par notre administrateur système), Microsoft a déclaré: "... le problème a été identifié dans Windows Server 2012 et n'a été résolu que dans la prochaine version de Windows qui est Windows 8.1 / Windows Server 2012 R2" .
la source
J'ai eu ce problème cette semaine depuis le passage à l'heure d'été. Je sais que ce n'est pas une bonne réponse, mais la suppression et la recréation du travail semblent résoudre le problème. J'ai testé quelques travaux qui ont été dupliqués pendant la nuit et les travaux recréés n'ont pas été dupliqués.
la source
Nous pourrions reproduire l'erreur lorsque le travail a été planifié sur UTC + 0 (serveur Windows 2012 R2).
Par exemple, nous avions un travail exécuté à de mauvaises dates qui était prévu à 2 heures du matin.
Comme notre fuseau horaire est UTC + 2, le travail s'est exécuté à UTC + 0.
Il semble que Windows ait des problèmes d'arrondi. Il utilise peut-être UTC en interne et si le travail s'exécute exactement à UTC + 0, certaines erreurs d'arrondi ou conditions de concurrence provoquent l'exécution du travail aux mauvaises dates.
Nous avons également vu des travaux, qui se déroulent comme prévu mais après le redémarrage, ont rapporté:
Après avoir modifié l'heure programmée à par exemple 02h02, les erreurs ont disparu.
la source