X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Sun, 11 Nov 2007 21:38:16 +0100 From: Thomas Baker To: Cygwin Mailing List Subject: Reliable old script loses data on new Cygwin installation Message-ID: <20071111203816.GA2308@sub-tombaker> References: <20071111173033 DOT GA2360 AT sub-tombaker> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071111173033.GA2360@sub-tombaker> User-Agent: Mutt/1.4.2.1i X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Dear all, I have been using a Korn shell script twenty times per day for more than ten years -- I published an earlier version in UnixWorld in 1994 and the latest version last year in lifehacker.com [1]. When I now run the script on brand-new Cygwin installations, it loses data. I have tested the script on fresh data many times and find that it may run correctly twenty times and then fail. Then it will run correctly ten more times and fail, but at a different point in processing the data. The line of the script that is causing the failure is: gawk '$'$Searchfield' !~ /'$Searchkey'/' $3 >|$Tmpfile; mv $Tmpfile $3 (it gets STDOUT from a previous line), where: Tmpdir=/tmp Tmpfile=$Tmpdir/shf$$.tmp (i.e., /tmp/shf2080.tmp) i.e.: gawk '$1 !~ /^LINX/ $3' >|/tmp/sht2080.tmp; mv /tmp/sht2080.tmp huh2 What I get is error messages like the following: mv: cannot create regular file `huh2': Permission denied gawk: cmd. line:1: fatal: cannot open file `huh2' for reading (No such file or directory) gawk: cmd. line:1: fatal: cannot open file `huh2' for reading (No such file or directory) What I then find is that data has been lost. If I interrupt the script right after the error message I find files (such as "huh2") that have a length of zero -- OR I find a file listed with a correct-looking length but garbage contents. For example, the text file (before running the script): - 2007-10-28 20:25 4010 german comes out the other end looking like - 2007-10-28 20:31 4010 german but "od german" shows the _entire_ contents of the file to be: 0000000 000000 000000 000000 000000 000000 000000 000000 000000 * 0007640 000000 000000 000000 000000 000000 0007652 I have used this script on many machines and platforms over the years (Linux, Solaris, DOS 3.3 with MKS Toolkit, Win95, Win2000, XP). It is now failing on two different WinXP computers on which I have just installed Cygwin from the Web. -- one brand-new (with an English-language XP and a SATA hard disk) and one two years old (with a German-language-XP and an ATA hard disk). One of the machines with the new Cygwin installation also lost lots of data when I scheduled it to move a large subdirectory (using "mv") in the middle of the night. The message I found on my return was: "Windows - Device TimeOut" The specified I/O operation on \Device\Harddisk7\DR10 was not completed before the time-out period expired. Comparing the packages installed on my laptop (which has no problems with "mv") with the packages on the two computers with the new Cygwin installation, I see: Older (works) Newer installation (broken) coreutils 6.4-1 6.9-5 gawk 3.1.5-4 3.1.6-1 pdksh 5.2.14-3 5.2.14-3 The two computers on which I am getting errors have the following in common: -- Their processors and hard disks are faster than *most* of the computers I have been using (both are generic home-office PCs from Siemens-Fujitsu). -- Both now have the latest version of Cygwin from the Web. I have searched FAQs and mailing lists for problems with "timeout" and the like but find nothing obviously relevant. A colleague of mine who knows alot more about these things is scratching his head on this. Is it possible that something in the more recent versions of Cygwin packages is causing this problem? Many thanks, Tom Baker [1] http://lifehacker.com/software/command-line/getting-things-done-with-rulebased-list-processing-217063.php -- Tom Baker - tbaker AT tbaker DOT de - baker AT sub DOT uni-goettingen DOT de -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/