This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: makecab.exe hangs on cygwin 3.1
- From: Jose Isaias Cabrera <jicman at outlook dot com>
- To: Mike Kaganski <mike dot kaganski at collabora dot com>, "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Thu, 9 Jan 2020 19:48:21 +0000
- Subject: Re: makecab.exe hangs on cygwin 3.1
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F3MqNErxzc0uyNX7bPj64oOTxPIGuDJMWMXxdLh1lhU=; b=cKcExUNRrSmjVtoud7IRzfqsbo5+ohnKsP7EP1lP3cfiUyUgqPYWeJQ5kqzkRxPC9Puk8YHkIkzG6eU+LydXiu2EvSa/QYeQgkVR+Ojo20pmGAcxPubtG5eF6g2U9785EEnLKyC2gx/7vOIkoQbECzSVBU7PrAakt5PlnYNyn/1AZlDmYea6dWS+iyGQFmr6tL7snSR6xnoalZhWB7/zEnUukU+IBiiJrkfeedg05pZmAMjerEnkO3YCbiowSkF12ClNyRy7S51/08PMMZBkl7XJCIK0G5xD0NUAlfNRJLpIuBcqS/iuMm9RBBgtZ0zXPzGTJlF7OYS8K9adQ+VOPw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J4l4JfjzF/0MYDGPmuy7BmVlC2gYBlcwO7AzIxl5PfguqmStDG44vS/nqLj63RTZ3ovL+ZGKln2vTAkp1NnodgGfv5zTvb7HiN8yzlEEKORG2IoLrmxxH4kXBs38n7s7fEQQ8u7vGgzZKI9osys4zAOT+m3EVcbGg68dnH3OLIgjiQTMjdG86PHfe+f386/seCbjN0dKheusU6+AFhQmvqwpxnCBvzTHXmVVhq2Vcap3l0s1ZAuIihRTprSCr0pyllx4iHug0lK63pDp87FKkV4labmzqCeJpY2GzB2l2dY6Av1xPs8Ipa+lqbGd2c4esXBWPy8cRToj2B9gIgKDgw==
- References: <97c2e912-8f7d-8ca8-8f7c-bbfaeec26b39@collabora.com>
Mike Kaganski, on Thursday, January 9, 2020 12:21 PM, wrote...
>
> Hello,
>
> 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/test.pm, and run from mintty as
>
> $ perl c:/makecab/test.pm
>
> 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_
Works fine with cytwin 3.0.7...
$ uname -a
CYGWIN_NT-10.0-WOW HOR711318E 3.0.7(0.338/5/3) 2019-04-30 18:04 i686 Cygwin
$ perl test.pm
Preparing 80 MiB of random data... done!
Now the actual test: this hangs with cygwin 3.1 ... makecab finished!
Cabinet Maker - Lossless Data Compression Tool
0.00% - raw=0 compressed=0
0.04% - raw=32,768 compressed=32,775
[clip]
99.88% - raw=83,787,776 compressed=83,805,675
99.92% - raw=83,820,544 compressed=83,838,450
99.96% - raw=83,853,312 compressed=83,871,225
100.00% - raw=83,886,080 compressed=83,904,000
** test.bin placed in cabinet test.bi_(47251456) on disk
100.00% [flushing current folder]
eureka@HORSE ~
thanks.
josé
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple