View Full Version : 'Rename files' step fails
teognost
12-12-2007, 02:42 PM
I have one step producing file addedResults.xml by applying some styles with msxsl.exe.
This is followed by another step-renaming addedResults.xml to an existent results.xml(I chose option to delete the existent files if found).
Until today everything was ok but from 10 am (strange it started precisely at this hour :-) ) this step continously fails:
//*************
Output of the step was:
Renaming files in 'D:\Reports\BuildsOutput\2007.1212.1.0\'...
Deleting results.xml
addedResults.xml -> results.xml
The process cannot access the file because it is being used by another process.
//*************
Is there any possiblity to rename this file even if it is in use?
I did not discover yet what process is using this file,I tried with FileMon but box frozen.
But after the build process finished I tried manually to rename that file and it was ok,so only during the build it is reported as in use.
kinook
12-12-2007, 03:37 PM
The Rename Files action uses the DeleteFile (http://msdn2.microsoft.com/en-us/library/aa363915.aspx) and MoveFile (http://msdn2.microsoft.com/en-us/library/aa365239.aspx) APIs to delete and rename files, which will fail if the file is in use. VBP built-in actions from previous steps will not keep a handle open to any files that are processed, so there must have been something else that kept the file open.
teognost
12-13-2007, 04:59 AM
I tried some workaround-introduced a Wait step for 10 sec-between the step producing addedResults.xml and the step renaming addedResults.xml.This seems to solve the issue but I do not understand exactly why.
But now I begin to have other issues-I have a step setting File version for a C# solution,from this morning it fails:
Error firing vbld_StepDone event: Error in Step (VBScript) script code at Line 32, Column 1 (Permission denied)
where the line failing is;
Set file=vbld_FSO().OpenTextFile(strCurrProjLogFullPat h,ForAppending,TRUE)
I just open a file in order to write inside the content of LASTSTEP_OUTPUT.
Previous step is writing into this file as well.
I suspect this error is somehow related with the previous one with 'Rename Files'.It is like something happened yesterday on the build box so from that moment a VBP step would keep a file locked more than normal so next step would find the file locked and it would fail.But you wrote this is not possible so I really have no real clue about what is going on :-(
kinook
12-13-2007, 07:53 AM
What changed on the box when the problem started happening? Do you have any active scanning anti-virus or other security/resident software that could somehow interfere with VBP's access to files? Something other than VBP is keeping the files open.
teognost
12-13-2007, 09:22 AM
I checked-only changes I found were 2 Win2003 updates but I am not sure about the hour they ocurred.
On that box is installed NOD32 antivirus.
I just noticed another issue happening from yesterday:some unit tests are not performed correctly because the related coverage log is reported in use.
The affected unit tests are randomly ,they change with each build.
I launch unit tests from a NCover step in VBP.
*****************************
"C:\Program Files\NCover\NCover.Console.exe" "C:\Program Files\NUnit-Net-2.0 2.2.8\bin\nunit-console.exe" "MyComp.ExConn.IConnector.Tests.dll" //w D:\LatestUnitTestBinaries\NightlyTrunk //a MyComp.ExConn.IMarketDataConnector //ea MyComp.TranslatorGen.GeneratedTranslatorAttribute; MyComp.NG.Serialization.GeneratedSerializatorAttri bute //l D:\Reports\NCover\08.1.1017.0\MyComp.ExConn.IConne ctor.Tests.dll.Coverage.log //x D:\Reports\NCover\08.1.1017.0\MyComp.ExConn.IConne ctor.Tests.dll.Coverage.xml /noshadow /xml:"D:\Reports\UnitTests\08.1.1017.0\MyComp.ExConn.ICo nnector.Tests.dll.xml"
NCover.Console v1.5.5 - Code Coverage Analysis for .NET - http://ncover.org
Copyright (c) 2004-2005 Peter Waldschmidt
Command: C:\Program Files\NUnit-Net-2.0 2.2.8\bin\nunit-console.exe
Command Args: "MyComp.ExConn.IConnector.Tests.dll" "/noshadow" "/xml:D:\Reports\UnitTests\08.1.1017.0\MyComp.ExConn .IConnector.Tests.dll.xml"
Working Directory: D:\LatestUnitTestBinaries\NightlyTrunk
Assemblies: MyComp.ExConn.IMarketDataConnector
Coverage Xml: D:\Reports\NCover\08.1.1017.0\MyComp.ExConn.IConne ctor.Tests.dll.Coverage.xml
Coverage Log: D:\Reports\NCover\08.1.1017.0\MyComp.ExConn.IConne ctor.Tests.dll.Coverage.log
Waiting for profiled application to connect...Connected
Configuring Profiler...
******************* Program Output *******************
Unhandled Exception: System.IO.IOException: The process cannot access the file 'D:\Reports\NCover\08.1.1017.0\MyComp.ExConn.IConn ector.Tests.dll.Coverage.log' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter.CreateFile(String path, Boolean append)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
at NCover.Framework.ProfilerMessageCenter.LoggingThre ad(Object profiler)
at System.Threading.ThreadHelper.ThreadStart_Context( Object state)
at System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
Process completed with exit code -532459699
teognost
12-13-2007, 03:08 PM
I think I am able now to reproduce this issue even more clearly.
I have a group of steps:
1)copy file ProjDep.Console.exe into folder A (VBP copy files step)
2)launch ProjDep.Console.exe using VBP Run Program step
3)delete file ProjDep.Console.exe into folder A (VBP delete files step)
I try to run "Rebuild group" action several times->sometimes is ok,but sometime it says build failed on step 3:
build '2007.1213.2.0' has failed on step 'Delete dependency binary files'.
Output of the step was:
Delete files in folder 'D:\Reports\BuildsOutput\2007.1213.2.0\'...
ProjDep.Console.exe
Error deleting file 'D:\Reports\BuildsOutput\2007.1213.2.0\ProjDep.Con sole.exe': Access is denied.
0 file(s) deleted
Notes:
-if I put a "Wait" step for 5 seconds between 2) and 3) ->error did not appear
-If I replace step 3 with a Run Program step and calling del command for file deletion-error did not appear
-after group actions executed and deletion failed-if I try to manually delete the file ProjDep.Console.exe ->no problem appears.
So I think whatever happened on that bld box-it seems to affect Visual Build steps only.
Problem is I don't know how to determine exactly what is causing the file to remain locked after VBP step "Run Program" finished.
kinook
12-13-2007, 03:20 PM
I don't know either, but I'm pretty sure that VBP itself is not keeping the file in use. I ran the attached project continuously on Win XP SP2 w/ VBP v6.6 for several minutes, and it is always able to delete the file right after copying and running it. If I single step the build and open %TEMP%\A\xcopy.exe with Visual Studio 2003 (which locks it while open) after the copy step, the delete step fails (as expected).
teognost
12-14-2007, 05:25 AM
Thanks a lot for the sample build,it is a very good way to test this strange issue I am experiencing.
So I tried your delrun.bld on my box(WinXpSP2 single processor)-everything ok,the step Delete Files never fails.
Then I tried on the build box(Win2003Server Dual Core)->after the cycle is running couple of times -the step Delete Files fails:
12/14/2007 11:10:06 AM: Building project step 'Delete Files'...
Delete files in folder 'C:\DOCUME~1\A~1.B\LOCALS~1\Temp\1\A\'...
xcopy.exe
Error deleting file 'C:\DOCUME~1\A~1.B\LOCALS~1\Temp\1\A\xcopy.exe': Access is denied.
0 file(s) deleted
12/14/2007 11:10:06 AM: Step 'Delete Files' failed
12/14/2007 11:10:06 AM: Build ended.
I made a small modification,tried on the build box the bld attached (delrun_modified.bld),xcopy.exe would be launched properly to copy some files->in this case even the first cycle fails on step "Delete Files"-same reason,Access denied.
On my box -this delrun_modified.bld runs without any problem.
So what should I do next in order to fix this issue on build box???
kinook
12-14-2007, 08:44 AM
Figure out what is opening the file(s) and uninstall or disable it. I would start with temporarily disabling or removing any anti-virus, security, or other resident software. Another option would be to format the hard drive and reinstall Windows.
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc.