2012-10-24 7 views
11

Uno degli sviluppatori sta applicando la patch all'elemento della configurazione e ha infranto la configurazione dell'elemento della configurazione. L'errore si è verificato come di seguito nel registro di build. Ho fatto i seguenti passaggi e ancora non funziona.Teamcity v7.0.2 - il file di directory di checkout non può essere eliminato quando si applica la patch

  1. Non è stato possibile eliminare la cartella: 35b0f615bcea75bd manualmente anche se ho accesso completo alla scrittura e all'eliminazione alle directory dell'agent di build.
  2. Ho provato a eseguire il check-out Enforce pulito, non funziona ancora.
  3. Ripetere la compilazione, non funziona ancora.

Domande:

  1. sta cancellando questo file manualmente la migliore soluzione per risolvere l'errore sotto?
  2. Se la risposta è "sì", cosa dovrei provare per eliminare questo file?
  3. Qual è il modo migliore per evitare che questo errore si ripresenti durante l'applicazione della patch?

log di compilazione:

[18:32:28]Checking for changes 
[18:35:15]Publishing internal artifacts 
[18:35:15]Clearing temporary directory: D:\TeamCity\buildAgent\temp\buildTmp 
[18:35:15]Checkout directory: D:\TeamCity\buildAgent\work\35b0f615bcea75bd 
[18:35:15]Updating sources: server side checkout (2m:09s) 
[18:35:16][Updating sources] Will perform clean checkout. Reason: Agent doesn't have any version of the project sources 
[18:35:16][Updating sources] Building clean patch for VCS root: ProjectName Trunk 
[18:37:24][Updating sources] Transferring cached clean patch for VCS root: ProjectName Trunk 
[18:37:25][Updating sources] Repository sources transferred: 27.61Mb total 
[18:37:25][Updating sources] Removing D:\TeamCity\buildAgent\work\35b0f615bcea75bd 
[18:37:25][Updating sources] Error while applying patch: Failed to delete: D:\TeamCity\buildAgent\work\35b0f615bcea75bd\ProjectName\bin\Debug 
[18:37:25]Publishing internal artifacts 
[18:37:25]Build failed to start. Artifacts will not be published for this build 
[18:37:26]Build finished 

risposta

10

Domanda 1. Sì, eliminando la cartella è la soluzione migliore per risolvere la situazione attuale.

Domanda 2. Ogni volta che ho avuto un problema come questo è stato perché c'è un file in uso nella cartella che non può essere cancellato. Quindi ti suggerisco di utilizzare uno strumento come Process Monitor sul server TeamCity per capire quale file è in uso.

Domanda 3. Una volta calcolato ciò che era in uso, è necessario capire perché fermarlo di nuovo.

11

Abbiamo riscontrato questo problema durante l'esecuzione dei test Selenium e il browser non è stato spento correttamente. Abbiamo effettivamente creato uno script PowerShell che eseguiamo come build su uno dei nostri agenti che ucciderà qualsiasi IE eccezionale o processi di Firefox o Chrome. Abbiamo anche assicurato che i nostri test chiudessero sempre il browser durante il teardown.

Se si dispone di privilegi sufficienti, è possibile riavviare da remoto l'agente di creazione dall'interfaccia Web di TeamCity. A tale scopo, fai clic sulla scheda Agenti nella parte superiore, selezionando l'agente incriminato, quindi seleziona "Riavvia agente". Puoi leggere di più su TeamCity documentation.

+2

Abbiamo avuto questo: non è necessario riavviare la macchina in realtà, è possibile collegarsi, andare al task manager e interrompere i processi chrome.exe e chromedriver.exe, che ha fatto il trucco per noi – soupy1976

+0

I Ho appena incontrato questo scenario esatto. Qualche possibilità di pubblicare lo script PS? –

+1

Get-Process chromedriver | uccidere – cezarypiatek

3

1. Nel mio caso era la cartella stessa che era bloccata. TC dà errore: [TEAMCITY TEMPLATE ERROR] e "Impossibile creare una directory, viene registrato un messaggio di errore".

2. Utilizzando lo strumento Unlocker, sono stato in grado di vedere e correggere che 'sistema' aveva un blocco nella cartella. Forse questo è dovuto a una build di Teamcity che non si ripulisce correttamente da sola?

3. Se è così, sembra che dovrei provare a utilizzare il plug-in [Swabra] [1] per assicurarmi che non si ripeta.

[1] http://confluence.jetbrains.com/display/TCD6/Adding+Swabra+as+a+Build+Feature

2

Per la cronaca :) Riavviare il computer dell'agente -> Questo riavvia la macchina (come scritto lol) e non solo l'agente :) ... e che ha risolto il mio problema. La cartella potrebbe essere stata bloccata da un processo.

1

Ampliando la risposta da @cezarypiatek:

Se non si dispone di accesso per accedere alla macchina, si potrebbe provare ad aggiungere un passaggio di generazione PowerShell che corre:

Get-Process chromedriver | kill 
Get-Process chrome | kill 

Assicurarsi che il il passo è impostato per essere eseguito anche se la compilazione fallisce.

È quindi possibile disattivare solo questo passaggio, pronto per essere utilizzato la prossima volta che questo si presenta.

Problemi correlati