Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <005d01c1176f$19910e30$0300a8c0@ufo> From: "Trevor Forbes" To: "cygdev" References: <20010725173147 DOT P490 AT cygbert DOT vinschen DOT de> Subject: Re: Problems with autoconf-2.52 testsuite using current CVS Cygwin Date: Sat, 28 Jul 2001 23:37:41 +0930 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Adding to Corinna excellent start....... I have sent a far amount of time investigating this one. AFAICT the problem only occurs in the following script combination: ............ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap 'AS_EXIT([1])' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/$1XXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/$1$$-$RANDOM (umask 077 && mkdir $tmp) .......... Part of the problem is that ash is missing some important functionality, primarily $RANDOM. As ash does not have $RANDOM, and we are left to rely on the PID being unique identifier which is far from ideal as its already been highlighted by Corinna. The use of $RANDOM would avoid the duplicate PID problem and should avoid the duplicate directory name problem or at least give a 1 in 32768 (RANDOM's range) chance of avoiding it...... And another part of the problem is Cygwin does not have a mktemp utility. The mktemp is used in preference to mkdir and totally bypasses the duplicate PID and no RANDOM problem highlighted above.... So after trying a few different versions of mktemp I found one at http://www.courtesan.com/mktemp/mktemp.html . It built cleanly and I must say its "great". I tried it with autoconf and straight away ALL 155 autoconf tests passed. Great, but there is still the problem that the directories are not being deleted in the temp dir. :( Note, I think this mktemp needs to be added as a core package. Things are a bit clearer now that there is no file name collisions. I think the trap is not working all the time and therefore it is not calling "rm"..... trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 This is far as I have got, I am sort of stumped as to which direction to go next. How do you debug this sort of signal problem?....... Anyway, I am just reporting my finding so far just in case someone else can see the solution. Note, I have not stopped looking into it... I hope this of some use..... Trevor.