L'utilità di pianificazione ha eseguito un'attività due volte


10

Aggiornamento: ora è successo due giorni di fila.

Aggiornamento: XML di attività pianificate e immagini ora inclusi.

Due server situati a Londra, entrambi Windows 2012, hanno un'attività pianificata impostata per essere eseguita alle 15:00 dal lunedì al venerdì. Questo è stato impostato per gli ultimi 5 mesi senza problemi.

Tuttavia, lunedì 28 agosto entrambi hanno eseguito l'attività prevista alle 15:00 e poi di nuovo alle 16:00. Quando è stato segnalato per la prima volta, ho pensato che fosse troppo una coincidenza per essere il giorno dopo che gli orologi erano tornati indietro di un'ora. Tuttavia, non riesco a spiegare perché è successo e se è correlato al cambio dell'orologio.

I log pertinenti da un server (anche i log dell'altro seguono questo schema):

Evento 129 15:00:20 Attività di avvio dell'Utilità di pianificazione "\ 3pm", istanza "C: \ Programmi (x86) \ PHP \ v5.4 \ php.exe" con ID processo 2388.

Evento 100 15:00:20 L'utilità di pianificazione è stata avviata "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" istanza dell'attività "\ 3pm" per l'utente "x \ y".

Evento 200 15:00:20 L'utilità di pianificazione ha avviato l'azione "C: \ Programmi (x86) \ PHP \ v5.4 \ php.exe" nell'istanza "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" dell'attività "\ 03:00".

Evento 201 15:00:23 L'utilità di pianificazione ha completato correttamente l'attività "\ 3pm", istanza "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", azione "C: \ Programmi (x86) \ PHP \ v5.4 \ php .exe "con codice di ritorno 0.

Evento 129 16:00:20 Attività di avvio dell'Utilità di pianificazione "\ 3pm", istanza "C: \ Programmi (x86) \ PHP \ v5.4 \ php.exe" con ID processo 1224.

Evento 100 16:00:20 L'utilità di pianificazione è stata avviata "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" istanza dell'attività "\ 3pm" per l'utente "x \ y".

Event 200 16:00:20 L'utilità di pianificazione ha avviato l'azione "C: \ Programmi (x86) \ PHP \ v5.4 \ php.exe" nell'istanza "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" dell'attività "\ 03:00".

Evento 201 16:00:23 L'utilità di pianificazione ha completato correttamente l'attività "\ 3pm", istanza "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", azione "C: \ Programmi (x86) \ PHP \ v5.4 \ php .exe "con codice di ritorno 0.

Ho visto questa domanda Operazione pianificata in esecuzione due volte di volta in volta che indica che la causa è un errore su http://support.microsoft.com/kb/2461249 . Tuttavia, ciò non include Server 2012 nell'elenco dei sistemi operativi problematici.

Sto lottando per spiegare questo, qualcun altro?

L'esportazione XML per l'attività pianificata è:

<?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>

Attiva configurazione per l'attività pianificata Cronologia per l'attività pianificata

29 ottobre 17:00 - Aggiornamento: entrambi i server hanno nuovamente eseguito l'attività pianificata alle 15:00 e alle 16:00. Ora ho aggiornato il file php che viene eseguito dallo scheduler per non fare effettivamente nulla mentre sto provando a risolverlo. Sto programmando di riavviare un server per vedere se questo cambia qualcosa domani.

30 ottobre 08:25 - Aggiornamento - Durante l'esportazione dell'attività XML mi sono ricordato di non aver incluso il fatto che l'attività pianificata sul secondo server è stata creata importando l'XML dell'attività creata sul primo. L'unica differenza tra le due attività è il percorso del file php che stanno eseguendo e l'account utente con cui sono in esecuzione.

30 ottobre 16:30 - Aggiornamento: il server che è stato riavviato non mostra più questo comportamento, l'attività pianificata è stata eseguita una volta su di esso. Aspetterò qualche giorno prima di riavviare il secondo server nel caso qualcuno abbia qualche idea sulla diagnosi del perché / come è successo

06 novembre 18:00 - Aggiornamento: abbiamo applicato tutti gli aggiornamenti al secondo server e riavviati. Partimmo dal presupposto che ciò avrebbe risolto il problema, tuttavia le 15:00 funzionarono di nuovo due volte, una volta alle 15:00 e di nuovo alle 16:00. Ho guardato altri lavori programmati e hanno funzionato solo una volta.


È improbabile a causa della modifica dell'ora se è il giorno successivo e le ore nei registri riflettono l'ora esatta (il che significa che se fosse un problema di tempo lo vedresti eseguito due volte ma entrambi alle 15:00 non uno alla volta). Onestamente, se fosse successo solo una volta in agosto, sarei propenso a dire "bug / anomalia / fantasmi" e andare avanti. Ma forse qualcun altro può far luce su di te qui ...
TheCleaner,

29 ottobre 17:00 - Aggiornamento: entrambi i server hanno nuovamente eseguito l'attività pianificata alle 15:00 e alle 16:00. Ho ora aggiornato il file php che viene eseguito dallo scheduler per non fare effettivamente nulla mentre sto provando a risolverlo. Sto programmando di riavviare un server per vedere se questo cambia qualcosa domani.
Ross Buggins,

1
Potresti farci un favore per favore e pubblicare l'esportazione XML dell'attività pianificata in modo che possiamo vedere quali sono i suoi parametri in realtà?
Ryan Ries,

solo per essere sicuri: hai controllato l'opzione Trigger "Sincronizza tra fusi orari"? Successivamente, l'Utilità di pianificazione utilizza UTC.
Manfred Schmidt,

No, non è spuntato. Tuttavia, con questo segno di spunta non credo sia il comportamento che mi occorre. Voglio che l'attività venga eseguita alle 15:00 ora locale, con quella spunta credo che sarebbe in esecuzione un'ora durante il BST?
Ross Buggins,

Risposte:


4

Abbiamo appena notato lo stesso problema sui nostri server di produzione (anche Windows Server 2012), che si è verificato questa settimana. È iniziato anche dopo che i nostri orologi sono tornati indietro di un'ora (che era il 3 novembre 2013, qui a Toronto).

Aggiornamento al 12 novembre 2013:

  • Il riavvio non ha funzionato (le attività hanno continuato a essere eseguite due volte)
  • L'esportazione e la reimportazione delle attività non hanno funzionato (le attività hanno continuato a essere eseguite due volte)
  • Ricreare manualmente l'attività nella GUI risolve il problema

Inoltre, dopo ulteriori discussioni con Microsoft (dal nostro amministratore di sistema), Microsoft ha dichiarato: "... il problema è stato identificato in Windows Server 2012 ed è stato risolto solo nella prossima versione di Windows che è Windows 8.1 / Windows Server 2012 R2" .


Anche questi sono stati importati da file XML? Vedi il mio commento alla risposta di Stijn
Ross Buggins,

Abbiamo circa 10 compiti. Quelli che sono stati digitati manualmente (ne sono certo di quell'origine, perché ho creato di recente le attività) NON hanno il problema di eseguire due volte. Alcune delle altre attività sono state importate da XML e presentano il problema. Domani proveremo un riavvio e seguiremo Microsoft
Warren Stevens,

Un'altra nota: non è stato verificato "Sincronizza tra fusi orari" per nessuna delle attività (nel caso in cui sia importante)
Warren Stevens,

Dal nostro amministratore di sistema: "... Hanno avuto una sessione con Microsoft, l'hanno già visto prima, ma non possono dire esattamente cosa lo causi. Per ora ci chiedono di provare a riavviare il server e anche a ricreare le attività. Non è presente alcun aggiornamento rapido installabile per risolvere questo problema in quanto hanno affermato che altri clienti interessati erano in grado di risolvere riavviando o ricreando i compiti ... "
Warren Stevens,

1
Stiamo eseguendo Windows 2016 e stiamo riscontrando lo stesso problema (processo importato da Windows 2012)
Greg

1

Ho avuto questo problema affiorare questa settimana dal passaggio all'ora legale. So che questa non è un'ottima risposta, ma eliminare e ricreare il lavoro sembra risolvere il problema. Ho provato su un paio di lavori che sono stati duplicati durante la notte e i lavori ricreati non si sono duplicati.


0

Potremmo riprodurre l'errore quando il lavoro è stato pianificato su UTC + 0 (server Windows 2012 R2).
Ad esempio, abbiamo avuto un lavoro in esecuzione in date errate, che era previsto per le 2 del mattino.
Poiché il nostro fuso orario è UTC + 2, il lavoro è stato eseguito a UTC + 0.
Sembra che Windows abbia alcuni problemi di arrotondamento. Forse utilizza UTC internamente e se il lavoro viene eseguito esattamente a UTC + 0, alcuni errori di arrotondamento o condizioni di gara fanno sì che il lavoro venga eseguito in date errate.
Abbiamo anche visto i lavori, eseguiti come previsto ma dopo il riavvio, segnalati:

L'operatore o l'amministratore ha rifiutato la richiesta (0x800710E0)

Dopo aver modificato l'ora pianificata, ad esempio alle 2:02, gli errori sono scomparsi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.