From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16933 invoked by alias); 15 Nov 2013 18:53:51 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 16922 invoked by uid 89); 15 Nov 2013 18:53:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.3 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: smtp2-g21.free.fr Received: from Unknown (HELO smtp2-g21.free.fr) (212.27.42.2) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 15 Nov 2013 18:53:48 +0000 Received: from [192.168.0.11] (unknown [78.224.52.79]) by smtp2-g21.free.fr (Postfix) with ESMTP id D4B804B01F4; Fri, 15 Nov 2013 19:53:33 +0100 (CET) Subject: Re: Intermittent failures retrieving process exit codes Mime-Version: 1.0 (Mac OS X Mail 7.0 \(1822\)) Content-Type: text/plain; charset=windows-1252 From: Denis Excoffier In-Reply-To: <52844B2E.5050902@coverity.com> Date: Fri, 15 Nov 2013 18:53:00 -0000 Cc: lasse.collin@tukaani.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <50C2498C.2000003@coverity.com> <50C276AC.9090301@mailme.ath.cx> <50D401EF.9040705@coverity.com> <52844B2E.5050902@coverity.com> To: Tom Honermann , Cygwin Mailing List X-SW-Source: 2013-11/txt/msg00277.txt.bz2 On 2013-11-14 05:01, Tom Honermann wrote: > On 12/21/2012 01:30 AM, Tom Honermann wrote: >>=20 >> The workaround I implemented within Cygwin was simple and sloppy. I >> added a call to Sleep(1000) immediately before the call to ExitThread() >> in wait_sig() in winsup/cygwin/sigproc.cc. Since this thread (probably) >> doesn't exit until the process is exiting anyway, the call to Sleep() >> does not adversely affect shutdown. The thread just gets terminated >> while in the call to Sleep() instead of exiting before the process is >> terminated or getting terminated while still in the call to >> ExitThread(). A better solution might be to avoid the thread exiting at >> all (so long as it can't get terminated while holding critical >> resources), or to have the process exiting thread wait on it. Neither >> of these is ideal. Orderly shutdown of multi-threaded processes is >> really hard to do correctly on Windows. I experience on Windows 7 (not on XP) some problems that may be related. I would like to test your workaround, but sigproc.cc has much changed since then, there is now an exit_thead function with the comment "Exit the current thread very carefully.". I tried to insert Sleep(1000) at the end of exit_thread, immediately before "ExitThread (0)", but this yielded no change at all. Could someone be kind enough to update the workaround for modern sigproc.cc? Very briefly, my problem is that when i "tar xf =97use-compress-program=3Dx= z", i get: tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now and the last file of the archive is truncated at some 512bytes block. This occurs on Windows 7 (not on XP); with xz-5.1.3alpha (not with xz-5.1.2alpha= or xz-5.0.5); never on most tar.xz files; almost always on some (rare) tar.xz = files (one notable example is bc-1.06.95.tar.bz2 bunzip2=92ed and then xz=92ed); = depends on the .tar file itself, not on the option (like -9e, -0) used to create the .tar.xz; never with "tar tf"; and with all tar=92s i have tested. The retur= n code of all the involved xz -d commands is always zero though. Perhaps after all= , this is unrelated? Thank you. Regards, Denis Excoffier. -- 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