Sergey Petrunya <psergey@askmonty.org> writes:
Hi!
Both mine and Bo's buildslave are prone to error conditions like this: http://askmonty.org/buildbot/builders/win32-rel-nmake/builds/19/steps/bzr/lo...
Here is a suggestion on how to eliminate those.
Buildslave setup ---------------- Buildslave owner needs to download pstools and handle utilites:
http://technet.microsoft.com/en-us/sysinternals/bb896683.aspx http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
they need to unpack the zips, then put handle.exe, pskill.exe, pdh.dll somwhere on the path, and then run both exe files manually. The first manual run is needed to accept the EULA.
Buildbot script ---------------
I've come up with this script that uses the above utilities to kill all stray processes:
#!/usr/bin/perl my $cmd="handle.exe maria-slave |" ;
(I guess maria-slave should be $ARGV[0] or something ...)
open(IN, $cmd) || die("Failed to pipe from handle.exe"); my @pids = (); print "$cmd\n"; while(<IN>) { print $_; if (/ pid: ([0-9]+) /) { push @pids, $1; } } close(IN); print "\n\n"; my %hash = map { $_ => 1} @pids; my @uniq_pids = keys %hash; foreach (@uniq_pids) { $cmd= "pskill.exe $_\n"; print $cmd; system($cmd); }
EOF
The question is, where do we put the script? Have buildslave owners put it on the slaves manually (bad, complicates the setup)? Download through buildbot?
Downloading through buildbot should work well actually, it has easy-to-use support for that.
Any comments?
Let's try it. - Kristian.