X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:reply-to:from:date:message-id :subject:to:content-type:content-transfer-encoding; q=dns; s= default; b=WmGeqe69caflbCzdNnhSmPo3CQb41Jucw7xN2hJn8mhgVCMmK4Nfu xutjeFCadjvSS1XYKUglX0CQ7K1IB+leZuoWIsmi5P+jSKhCvULtaFxyn9vf7G4k Giib0ZTLAUrqAW19E0/grgX9apFwXX5uZek2O4WAG4tioHsAa5l108= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:reply-to:from:date:message-id :subject:to:content-type:content-transfer-encoding; s=default; bh=8SrRu3mXIZCOejcVgvevfWtWaQQ=; b=HZJrX4X95INCe0lGReufKQUHyOen tnK0GBXltNhmiLhp3IywpZEVMe4SN8QG8C2nsNSvImqdiIXtKgNQbvNZNhNkoMbT vv/lCFxD4g4WCJPjQFXIjDblAfU9VN+ilb2tdq+ypAlIJwm6bh1bmcQS0coOq1YM jwbYzcnNLKFQgdk= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=4.4 required=5.0 tests=AWL,BAYES_00,BODY_8BITS,FREEMAIL_FROM,GARBLED_BODY,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-wm0-f49.google.com X-Received: by 10.28.23.206 with SMTP id 197mr1019662wmx.88.1446025559708; Wed, 28 Oct 2015 02:45:59 -0700 (PDT) MIME-Version: 1.0 Reply-To: fracting AT gmail DOT com From: Qian Hong Date: Wed, 28 Oct 2015 17:45:19 +0800 Message-ID: Subject: Randomly hang when compiling Cygwin on Cygwin on Wine To: cygwin Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id t9S9kLFx005634 Dear folks, I try to compile Cygwin on Cygwin on Wine in a loop, and found a random hang. Usually, it happens more than 1/10. The hang could happen in different processes, including `sh.exe`, `gcc.exe`, `as.exe`, etc, but the backtraces are all similar. Here is one example I get now: (1) `pstree -p -l` suggest the hanging process might has PID 113: ?(1)─┬─bash(58)───make(93)───sh(89)───make(69)───sh(74)───sh(61)───make(9)───make(44)───sh(129)───sh(145)───make(94)───sh(130)───sh(104)───make(151)───sh(113) └─mintty(91)───bash(102)───pstree(141) (2) `cat /proc/113/cmdline` show below information: /bin/sh -c gcc -L/newlib-cygwin-all/newlib-cygwin-build/i686-pc-cygwin/winsup/cygwin -isystem /newlib-cygwin-all/newlib-cygwin/winsup/cygwin/include -B/newlib-cygwin-all/newlib-cygwin-build/i686-pc-cygwin/newlib/ -isystem /newlib-cygwin-all/newlib-cygwin-build/i686-pc-cygwin/newlib/targ-include -isystem /newlib-cygwin-all/newlib-cygwin/newlib/libc/include -I/newlib-cygwin-all/newlib-cygwin/winsup/cygwin/include -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"2.2.0\" -DPACKAGE_STRING=\"newlib\ 2.2.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. -I/newlib-cygwin-all/newlib-cygwin/newlib/libc/xdr -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -D_COMPILING_NEWLIB -DHAVE_BLKSIZE -DHAVE_FCNTL -DMALLOC_PROVIDED -fno-builtin -g -O2 -c -o lib_a-xdr_float.o `test -f 'xdr_float.c' || echo '/newlib-cygwin-all/newlib-cygwin/newlib/libc/xdr/'`xdr_float.c (3) I cd to the build target directory and list all files: /newlib-cygwin-all/newlib-cygwin-build/i686-pc-cygwin/newlib/libc/xdr$ ls lib_a-dummy.o lib_a-xdr.o lib_a-xdr_private.o Makefile The above list result suggest that the build target "lib_a-xdr_float.o" hasn't been generated, which suggested that the `gcc` process in the above command hasn't run. (4) Then I check the file descriptors opened by process 113: $ file /proc/113/fd/* /proc/113/fd/0: broken symbolic link to /dev/cons0 /proc/113/fd/1: broken symbolic link to /dev/cons0 /proc/113/fd/2: broken symbolic link to /dev/cons0 /proc/113/fd/3: symbolic link to pipe:[296] (5) I use gdb to attach to the process 113: [New Thread 64.0x3c] [New Thread 64.0x4c] [New Thread 64.0x51] Reading symbols from /usr/bin/sh.exe...Reading symbols from /usr/lib/debug//usr/bin/sh.exe.dbg...done. done. 0xb77a0be6 in ?? () (gdb) bt #0 0xb77a0be6 in __kernel_vsyscall+0xe in [vdso].so #1 0x7bc82ea5 in server_select+0x315 [/home/fracting/src/wine-patched-auto/dlls/ntdll/server.c:642] in ntdll #2 0x7bc8ade9 in wait_objects+0x89 [/home/fracting/src/wine-patched-auto/dlls/ntdll/sync.c:1034] in ntdll #3 0x7bc8d5e9 in __syscall_NtWaitForMultipleObjects+0x29 [/home/fracting/src/wine-patched-auto/dlls/ntdll/sync.c:1047] in ntdll #4 0x7b87bbe5 in WaitForMultipleObjectsEx+0x1b5 [/home/fracting/src/wine-patched-auto/dlls/kernel32/sync.c:186] in kernel32 #5 0x7b87ba21 in WaitForMultipleObjects+0x31 [/home/fracting/src/wine-patched-auto/dlls/kernel32/sync.c:146] in kernel32 #6 0x61006354 in cygwait(void*, _LARGE_INTEGER*, unsigned int)@12 (object=, timeout=0x7bc4861c, mask=2076474397) at /usr/src/debug/cygwin-2.2.1-1/winsup/cygwin/cygwait.cc:76 #7 0x6130a188 in ?? () from /usr/bin/cygwin1.dll #8 0x00000000 in ?? () (gdb) thread 2 [Switching to thread 2 (Thread 64.0x4c)] #0 0xb77a0be6 in ?? () (gdb) bt #0 0xb77a0be6 in __kernel_vsyscall+0xe in [vdso].so #1 0x7bc4aadc in __syscall_NtReadFile+0x41c [/media/workspace/src/wine-patched-auto/dlls/ntdll/file.c:1104] in ntdll #2 0x7b83f63d in ReadFile+0x1c6 [/home/fracting/src/wine-patched-auto/dlls/kernel32/file.c:448] in kernel32 #3 0x610efbae in wait_sig () at /usr/src/debug/cygwin-2.2.1-1/winsup/cygwin/sigproc.cc:1252 #4 0x611b6c40 in cygthread::main_thread_id () from /usr/bin/cygwin1.dll (gdb) thread 3 [Switching to thread 3 (Thread 64.0x51)] #0 0xb77a0be6 in ?? () (gdb) bt #0 0xb77a0be6 in __kernel_vsyscall+0xe in [vdso].so #1 0x7bc82ea5 in server_select+0x315 [/home/fracting/src/wine-patched-auto/dlls/ntdll/server.c:642] in ntdll #2 0x7bc8ade9 in wait_objects+0x89 [/home/fracting/src/wine-patched-auto/dlls/ntdll/sync.c:1034] in ntdll #3 0x7bc8d5e9 in __syscall_NtWaitForMultipleObjects+0x29 [/home/fracting/src/wine-patched-auto/dlls/ntdll/sync.c:1047] in ntdll #4 0x7b87bbe5 in WaitForMultipleObjectsEx+0x1b5 [/home/fracting/src/wine-patched-auto/dlls/kernel32/sync.c:186] in kernel32 #5 0x7b87b9a3 in WaitForSingleObject+0x2e [/home/fracting/src/wine-patched-auto/dlls/kernel32/sync.c:126] in kernel32 #6 0x6100548a in cygthread::stub(void*)@4 (arg=0xacce64) at /usr/src/debug/cygwin-2.2.1-1/winsup/cygwin/cygthread.cc:114 #7 0x61005400 in cygthread::release(bool) () at /usr/src/debug/cygwin-2.2.1-1/winsup/cygwin/cygthread.cc:292 #8 0x00acce64 in ?? () #9 0x00000051 in ?? () Here are the version information I have: $ uname -a CYGWIN_NT-5.1 2.2.1(0.289/5/3) 2015-08-20 11:40 i686 Cygwin $ sh --version GNU bash, version 4.3.42(4)-release (i686-pc-cygwin) $ wine --version wine-1.7.53-859-g6ec39dd (Staging) This bug also happens with latest git version of Cygwin. It might be either Wine bug or Cygwin bug, but currently I can't go further, since: - I can't reproduce this bug with strace.exe - I also can't reproduce this bug with Wine's relay debug trace, which records system API calls. Could you suggest any hints where should I look deeper? Thanks! -- Regards, Qian Hong - http://www.winehq.org -- 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