Cygwin commands are intermittently hanging on Windows
Derek Pagel
Derek.Pagel@infor.com
Mon Nov 7 22:06:46 GMT 2022
We've been encountering Cygwin commands that are intermittently hanging on Windows. We don't have any predictable way to reproduce it besides running commands in a loop until we encounter a hang. So, we've created a script that will loop and execute 5 different Cygwin commands (touch, cp, mv, which, and rm) and log any commands that take longer than a second. The script is set to loop 10,000 times which gives a handful of instances of hangs in the log that have taken anywhere from 10-200 seconds to complete. Has anyone else encountered hangs from Cygwin commands?
I've printed the script below for reference:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
use strict;
use Cwd;
my $TESTDIR = getcwd() . "\\test<file://test>";
my $MKDIRCMD = "mkdir test";
my $TOUCHCMD = 'touch test.txt';
my $CPCMD = 'cp test.txt test2.txt';
my $MVCMD = "mv test.txt " . $TESTDIR . "\\test.txt<file://test.txt>";
my $WHICHCMD = 'which explorer.exe';
my $RMCMD = "rm " . $TESTDIR . "\\test.txt test2.txt<file://test.txt%20test2.txt>";
my $count = 0;
my $fh;
my $LOG = open $fh, '>', 'cygwinTest.log';
if ( ! -e $TESTDIR ) {
runCMD($MKDIRCMD, 0);
}
while ($count < 10000) {
print "Loop $count:\n";
runCMD($TOUCHCMD, $count);
runCMD($CPCMD, $count);
runCMD($MVCMD, $count);
runCMD($WHICHCMD, $count);
runCMD($RMCMD, $count);
$count++;
}
sub runCMD {
my $CMD = $_[0];
my $COUNT = $_[1];
my $retCode;
my $startTime;
my $endTime;
my $totalTime;
$startTime = time();
$CMD = "C:\\Windows\\system32\\cmd.exe /c $CMD";
$retCode = system($CMD);
$endTime = time();
$totalTime = $endTime - $startTime;
if ($totalTime > 1 ) {
print $fh "Loop #$COUNT:\n";
if ($retCode == 0) {
print $fh "It took $totalTime seconds to run [$CMD]\n";
} else {
print $fh "It took $totalTime seconds to unsuccesfully run [$CMD]\n";
}
}
}
close $fh;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the Cygwin
mailing list