This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

makecab.exe hangs on cygwin 3.1


Using cygwin 3.1.2-1, I get a hang running a makecab.exe job started from a perl script.

The version of perl is 5.26.3-2; Windows 10.0.18363 x64.

I was able to create a minimal reproducer in perl:


select STDERR; # non-buffering output - just to see printed messages
print "Preparing 80 MiB of random data... ";
open my $randfile, '<:raw', "/dev/random" or die;
open my $testbin, '>:raw', "test.bin" or die;
for ( my $i = 0; $i < 20480; $i++ )
    my $buf = '';
    read $randfile, $buf, 4*1024;
    print $testbin $buf;
close $randfile;
close $testbin;
print "done!\n";

my $syscall = "C:/Windows/System32/makecab.exe /V3 test.bin 2\>\&1 |";
my @makecaboutput = ();
print "Now the actual test: this hangs with cygwin 3.1 ... ";
open (CAB, $syscall);
while (<CAB>) { push(@makecaboutput, $_); }
close (CAB);
print "makecab finished!\n"; # <<< this never prints

for ( my $i = 0; $i <= $#makecaboutput; $i++ )
    print $makecaboutput[$i];


I put this code to c:/makecab/, and run from mintty as

$ perl c:/makecab/

The text "makecab finished!" never appears with cygwin 3.1; it appears as expected (several seconds, most of which is creation of random test data) with cygwin 3.0.7-1.

Note that the test creates two files in current directory: test.bin, and (if succeeds) test.bi_

Best regards,
Mike Kaganski

Attachment: cygcheck.sysinfo
Description: Text document

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]