Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Date: Thu, 5 Sep 2002 11:33:20 -0400 From: Christopher Faylor To: cygwin-developers AT cygwin DOT com Subject: Re: hang in sig_wait waiting for debug lock Message-ID: <20020905153320.GC16827@redhat.com> Reply-To: cygwin-developers AT cygwin DOT com Mail-Followup-To: cygwin-developers AT cygwin DOT com References: <7710998905 DOT 20020828173811 AT logos-m DOT ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7710998905.20020828173811@logos-m.ru> User-Agent: Mutt/1.3.23.1i Any word on this? Have you determined which thread has the lock? It should be easy to do by looking at the muto structure. cgf On Wed, Aug 28, 2002 at 05:38:11PM +0400, egor duda wrote: >Hi! > > Running gcc's testsuite with cygwin1.dll from latest cvs i get the following strace: > >[...] >********************************************** >Program name: e:\unix\bin\sh.exe (376) >App version: 1003.3, api: 0.46 >DLL version: 1003.13, api: 0.62 >DLL build: 2002-08-28 17:24 >OS version: Windows NT-4.0 >Date/Time: 2002-08-28 17:25:52 >********************************************** > 109 4291 [unknown (0x179)] sh 376 fhandler_base::fixup_after_fork: inheriting '/dev/tty1' from parent > 83 4374 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xBC already opened > 72 4446 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xD4 already opened > 78 4524 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xAC already opened > 75 4599 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xA0 already opened > 72 4671 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xB4 already opened > 72 4743 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xB0 already opened > 82 4825 [unknown (0x179)] sh 376 fhandler_base::fixup_after_fork: inheriting '/dev/tty1' from parent > 77 4902 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x134 already opened > 72 4974 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x13C already opened > 73 5047 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x160 already opened > 73 5120 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0xC already opened > 72 5192 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x104 already opened > 73 5265 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x138 already opened > 70 5335 [unknown (0x179)] sh 376 fhandler_base::fixup_after_fork: inheriting '/dev/tty1' from parent > 68 5403 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x140 already opened > 68 5471 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x1C8 already opened > 67 5538 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x14C already opened > 69 5607 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x164 already opened > 67 5674 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x144 already opened > 67 5741 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x168 already opened > 69 5810 [unknown (0x179)] sh 376 fhandler_base::fixup_after_fork: inheriting '/dev/tty0' from parent > 68 5878 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x64 already opened > 68 5946 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x6C already opened > 66 6012 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x28 already opened > 70 6082 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x38 already opened > 69 6151 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x34 already opened > 67 6218 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x44 already opened > 67 6285 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x4C already opened > 67 6352 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x48 already opened > 68 6420 [unknown (0x179)] sh 376 fhandler_base::fork_fixup: handle 0x70 already opened > 131 6551 [unknown (0x179)] sh 376 open_shared: name shared, shared 0xA000000 (wanted 0xA000000), h 0x54 > 1808 8359 [unknown (0x179)] sh 376 add_handle: void memory_init():147 54(cygheap->shared_h) > 187 8546 [unknown (0x179)] sh 376 heap_init: heap base 0xA010000, heap top 0xA010000 > 282 8828 [unknown (0x179)] sh 376 open_shared: name duda, shared 0x1A010000 (wanted 0x0), h 0x78 > 78 8906 [unknown (0x179)] sh 376 memory_init: opening mount table for 'duda' at 0xA010000 > 76 8982 [unknown (0x179)] sh 376 add_handle: void memory_init():155 78(cygwin_mount_h) > 80 9062 [unknown (0x179)] sh 376 memory_init: mount table version 31DF at 0x1A010000 > 185 9247 [main] sh 376 add_handle: void dll_crt0_1():661 16C(hMainProc) > 85 9332 [main] sh 376 add_handle: protecting handle 'hMainProc', inherited flag 0 > 71 9403 [main] sh 376 add_handle: void dll_crt0_1():662 174(hMainThread) > 71 9474 [main] sh 376 add_handle: protecting handle 'hMainThread', inherited flag 0 > 138 9612 [main] sh 376 add_handle: void events_init():1118 1B4(title_mutex) > 81 9693 [main] sh 376 add_handle: protecting handle 'title_mutex', inherited flag 0 > 90 9783 [main] sh 376 events_init: windows_system_directory 'D:\WINNT40\System32\', windows_system_directory_length 20 > 77 9860 [main] sh 376 events_init: cygwin_hmodule 0x61000000 > 912 10772 [main] sh 376 parse_options: ntsec 1 > 153 10925 [main] sh 376 parse_options: ntea 0 > 138 11063 [main] sh 376 parse_options: binmode 65536 > 138 11201 [main] sh 376 parse_options: glob (called func) > 135 11336 [main] sh 376 parse_options: tty 1801 > 142 11478 [main] sh 376 parse_options: error_start (called func) > 132 11610 [main] sh 376 set_file_api_mode: File APIs set to OEM > 65 11675 [main] sh 376 parse_options: codepage (called func) > 127 11802 [main] sh 376 parse_options: winsymlinks 0 > 388 12190 [main] sh 376 parse_options: returning > 73 12263 [main] sh 376 pinfo_init: pid 376, pgid 294 > 147 12410 [main] sh 376 add_handle: void sigproc_init():563 210(wait_sig_inited) > 190 12600 [main] sh 376 add_handle: protecting handle 'wait_sig_inited', inherited flag 0 > 89 12689 [main] sh 376 add_handle: void sigproc_init():568 214(signal_arrived) > 76 12765 [main] sh 376 add_handle: protecting handle 'signal_arrived', inherited flag 0 > 921 13686 [main] sh 376 sigproc_init: process/signal handling enabled(1881) > 325 14011 [main] sh 376 transport_layer_pipes::connect: Error opening the pipe (2) > 224 14235 [main] sh 376 dll_crt0_1: user_data->main 0x408494 > 272 14507 [sig] sh 376 wait_sig: sigcatch_nonmain 0x248, sigcatch_main 0x24C > 71 14742 [sig] sh 376 add_handle: DWORD wait_sig(void*):1065 244(sigcatch_nosync) > >Here add_handle() blocks trying to acquire debug lock. I've added a >debug_printf just at start of add_handle, before call to lock >constructor. I'm trying to look deeper into this, but wanted to give a >heads-up. > >egor. mailto:deo AT logos-m DOT ru icq 5165414 fidonet 2:5020/496.19