I hit a wrinkle with a TeamCity build today – the build was just hanging, unexplained.
TC was actually quite useful, showing that the build agent was running a script which had then spun up (basically)
rundll.exe shell32,openas_rundll some_file.ico
and it took me a little while rooting around to work out that something was opening the “Open as … “ dialog for the file some_file.ico. No wonder the build was hanging – there was no-one to acknowledge the dialog box.
I could not figure out why it was being spun up in the first place. The build was running a dos script that was simply zipping up a set of files, some_file.ico being one of them.
7za.exe <some args>^ second_file.dll^ third_file.dll^ some_file.ico^ some_other_file.dll^ ...
That all seemed fine – and yet it’s almost as if some_file.ico was being opened, not appended to the zip that 7za was creating.
The trick lies in the line before. See it?
The build script running it had ‘^ ‘ at the end of a line instead of ‘^’.
(Frustratingly 7za actually thinks it has finished at that point and writes out “Everything is Ok”.)
2 comments:
You will find a legion of C & C++ programmers nodding their heads in sympathy with this one. In C/C++ the "\" acts as the line continuation character (notably used with multi-line macros) and if you have any trailing whitespace it can cause similar pain.
Argh, I'd not remembered that.
Post a Comment