20001014: attempt to close protected handle

Andrej Borsenkow Andrej.Borsenkow@mow.siemens.ru
Mon Oct 16 01:22:00 GMT 2000


Zsh regression tests that used pty's started to hang since one of post-1.1.4
snapshots (they did not work in 1.1.4 at all due to pty bug). I finally got a
closer look at it and found interesting thing.

Chris, you said, you use Zsh. I hope, you won't mind to compile it - it does
it OOTB.

The following happens with current Zsh CVS; it may happen with 3.1.9-dev-6
(the last released version) as well, but I have not tested it. cygwin-20001014
snapshot. Look at http://www.zsh.org or http://sourceforge.net/projects/zsh
for Zsh sources.

Compile Zsh; no special configure options are needed; I use --prefix=/usr.

Run it; I use direct shortcut to zsh and put path=(/usr/bin /usr/local/bin
$path) in /etc/zshrc. You may even run it as 'c:\cygwin\bin -f' to get clean
state.

Then execute:

MW1G17C% zmodload zsh/zpty
MW1G17C% zpty zsh zsh -f
MW1G17C% zpty -d zsh
      0 [main] zsh 1868 close_handle: attempt to close protected handle int
proc_subproc (long unsigned int, long unsigned int):289(childhProc<0x180>)
   2567 [main] zsh 1868 close_handle:  by int fhandler_pty_master::close
():912(get_ttyp ()->to_slave<0x180>)
MW1G17C%

To comment: zpty allocates pseudo-tty and starts command attached to this pty.
It assigns it handle `zsh'. zpty -d tries to kill associated command by
sending it HUP.

I CANNOT reproduce it with strace. Simply starting 'strace -ozsh.strace
zsh -f' hangs forever. If you may point to a bug in zsh that causes it - you
are welcome.

In the following cygcheck cygwin1.dll is listed twice - because I started zsh
via run and cwd was c:\cygwin\bin

All this does not happen with stock 1.1.4. It did not happen in at least some
post-1.1.4 code (I specifically tested it to see if pty bug was fixed).

It may or may not be related to bash exiting problem.

-andrej

Have a nice DOS!
B >>

MW1G17C% cygcheck -s -r -v

Cygnus Win95/NT Configuration Diagnostics
Current System Time: Mon Oct 16 12:15:25 2000

WinNT Ver 5.0 build 2195 Service Pack 1

Path:   /usr/bin
        /usr/local/bin
        /cygdrive/c/WINNT/system32
        /cygdrive/c/WINNT
        /cygdrive/c/WINNT/System32/Wbem
        /cygdrive/c/PROGRA~1/Vision
        /cygdrive/c/PROGRA~1/Vision/SYSTEM
        /cygdrive/c/PROGRA~1/COMMON~1/Vision
        /cygdrive/c/Program Files/DeskView/DMI/WIN32/bin
        /cygdrive/c/PROGRA~1/DeskView/System
        /cygdrive/c/win32app/ntp
        /cygdrive/c/win32app/bin
        /cygdrive/c/texmf/miktex/bin
        .

SysDir: C:\WINNT\System32
WinDir: C:\WINNT

CYGWIN = `tty'
HOME = `/cygdrive/h'
MAKE_MODE = `UNIX'
PWD = `/usr/bin'

ALLUSERSPROFILE = `C:\Documents and Settings\All Users'
APPDATA = `C:\Documents and Settings\mw1g017\Application Data'
COMMONPROGRAMFILES = `C:\Program Files\Common Files'
COMPUTERNAME = `MW1G17C'
COMSPEC = `C:\WINNT\system32\cmd.exe'
HOMEDRIVE = `H:'
HOMEPATH = `\'
HOMESHARE = `\\mowr011a\mw1g017'
LOGONSERVER = `\\MOWR011A'
NUMBER_OF_PROCESSORS = `1'
OS = `Windows_NT'
OS2LIBPATH = `C:\WINNT\system32\os2\dll;'
PATHEXT = `.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
PROCESSOR_ARCHITECTURE = `x86'
PROCESSOR_IDENTIFIER = `x86 Family 6 Model 3 Stepping 4, GenuineIntel'
PROCESSOR_LEVEL = `6'
PROCESSOR_REVISION = `0304'
PROGRAMFILES = `C:\Program Files'
PWRCHUTE = `C:\Program Files\Pwrchute'
SYSTEMDRIVE = `C:'
SYSTEMROOT = `C:\WINNT'
TEMP = `/cygdrive/c/DOCUME~1/mw1g017/LOCALS~1/Temp'
TMP = `/cygdrive/c/DOCUME~1/mw1g017/LOCALS~1/Temp'
USERDOMAIN = `RUMOWR061A'
USERPROFILE = `C:\Documents and Settings\mw1g017'
VIM = `C:\win32app\vim'
WIN32DMIPATH = `C:\Program Files\DeskView\DMI\Win32'
WINDIR = `C:\WINNT'
TERM = `cygwin'
TZ = `RST-3RDT-4,M3.5.0/2,M10.5.0/3'
LOGNAME = `MW1G017'
SHLVL = `1'
OLDPWD = `/usr/bin'
_ = `/usr/bin/cygcheck'

HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
  (default) = `/cygdrive'
  cygdrive flags = 0x00000020
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/PalmDev
  (default) = `c:\palmdev'
  flags = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/PRC-Tools
  (default) = `c:\program files\prc-tools'
  flags = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/tools
  (default) = `c:\tools'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/tools/src
  (default) = `\\itsrm2\root$\u1\src'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/local/palm
  (default) = `c:\palmdev'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrd
tart Menu\Programs\Cygnus Solutions
  (default) = (unsupported type)
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = `C:/cygwin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = `C:/cygwin/bin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = `C:/cygwin/lib'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options

a:  fd           N/A    N/A
c:  hd  NTFS    3089Mb  74% CP CS UN PA FC
d:  hd  NTFS    3079Mb  69% CP CS UN PA FC
e:  cd           N/A    N/A
h:  net NTFS   14362Mb  66% CP CS UN PA FC
v:  net NTFS   14362Mb  66% CP CS UN PA FC

c:\program files\prc-tools  /PRC-Tools  user    textmode
\\itsrm2\root$\u1\src  /tools/src  user    binmode
C:\cygwin\bin  /usr/bin  system  binmode
C:\cygwin\lib  /usr/lib  system  binmode
c:\palmdev  /usr/local/palmdev  user    binmode
c:\palmdev  /PalmDev  user    textmode
C:\cygwin  /        system  binmode
c:\tools  /tools   user    binmode

Found: .\bash.exe
Found: C:\cygwin\bin\bash.exe
Warning: .\bash.exe hides C:\cygwin\bin\bash.exe
Found: .\cat.exe
Found: C:\cygwin\bin\cat.exe
Warning: .\cat.exe hides C:\cygwin\bin\cat.exe
Found: .\cpp.exe
Found: C:\cygwin\bin\cpp.exe
Warning: .\cpp.exe hides C:\cygwin\bin\cpp.exe
Found: .\find.exe
Found: C:\cygwin\bin\find.exe
Warning: .\find.exe hides C:\cygwin\bin\find.exe
Found: .\gcc.exe
Found: C:\cygwin\bin\gcc.exe
Warning: .\gcc.exe hides C:\cygwin\bin\gcc.exe
Found: .\gdb.exe
Found: C:\cygwin\bin\gdb.exe
Warning: .\gdb.exe hides C:\cygwin\bin\gdb.exe
Found: .\ld.exe
Found: C:\cygwin\bin\ld.exe
Warning: .\ld.exe hides C:\cygwin\bin\ld.exe
Found: .\ls.exe
Found: C:\cygwin\bin\ls.exe
Warning: .\ls.exe hides C:\cygwin\bin\ls.exe
Found: .\make.exe
Found: C:\cygwin\bin\make.exe
Warning: .\make.exe hides C:\cygwin\bin\make.exe
Found: .\sh.exe
Found: C:\cygwin\bin\sh.exe
Warning: .\sh.exe hides C:\cygwin\bin\sh.exe

   83k 2000/06/11 .\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitcl30.dll" v0.0 ts=2000/6/11 7:34
   35k 2000/06/11 .\cygitk30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitk30.dll" v0.0 ts=2000/6/11 7:34
  402k 2000/06/11 .\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=2000/6/11 7:30
    5k 2000/06/11 .\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
   10k 2000/06/11 .\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=2000/6/11 7:30
  639k 2000/06/11 .\cygtk80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=2000/6/11 7:34
  586k 2000/08/04 .\cygwin1-1.1.4.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/8/4 4:53
  704k 2000/10/11 .\cygwin1-20001010.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/11 8:17
  711k 2000/10/13 .\cygwin1-20001012.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/13 8:55
  660k 2000/10/16 .\cygwin1.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/15 8:06
    Cygwin DLL version info:
        dll major: 1001
        dll minor: 5
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        api major: 0
        api minor: 29
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        build date: Sun Oct 15 00:06:17 EDT 2000
        snapshot date: 2000-10-14-23:55-EST
        shared id: cygwin1S3

   83k 2000/06/11 .\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitcl30.dll" v0.0 ts=2000/6/11 7:34
   35k 2000/06/11 .\cygitk30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitk30.dll" v0.0 ts=2000/6/11 7:34
  402k 2000/06/11 .\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=2000/6/11 7:30
    5k 2000/06/11 .\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
   10k 2000/06/11 .\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=2000/6/11 7:30
  639k 2000/06/11 .\cygtk80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=2000/6/11 7:34
  586k 2000/08/04 .\cygwin1-1.1.4.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/8/4 4:53
  704k 2000/10/11 .\cygwin1-20001010.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/11 8:17
  711k 2000/10/13 .\cygwin1-20001012.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/13 8:55
  660k 2000/10/16 .\cygwin1.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/15 8:06
    Cygwin DLL version info:
        dll major: 1001
        dll minor: 5
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        api major: 0
        api minor: 29
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        build date: Sun Oct 15 00:06:17 EDT 2000
        snapshot date: 2000-10-14-23:55-EST
        shared id: cygwin1S3

   83k 2000/06/11 C:\cygwin\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitcl30.dll" v0.0 ts=2000/6/11 7:34
   35k 2000/06/11 C:\cygwin\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitk30.dll" v0.0 ts=2000/6/11 7:34
  402k 2000/06/11 C:\cygwin\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=2000/6/11 7:30
    5k 2000/06/11 C:\cygwin\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
   10k 2000/06/11 C:\cygwin\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=2000/6/11 7:30
  639k 2000/06/11 C:\cygwin\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=2000/6/11 7:34
  586k 2000/08/04 C:\cygwin\bin\cygwin1-1.1.4.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/8/4 4:53
  704k 2000/10/11 C:\cygwin\bin\cygwin1-20001010.dll - os=4.0 img=1.0 sys=4.
                  "cygwin1.dll" v0.0 ts=2000/10/11 8:17
  711k 2000/10/13 C:\cygwin\bin\cygwin1-20001012.dll - os=4.0 img=1.0 sys=4.
                  "cygwin1.dll" v0.0 ts=2000/10/13 8:55
  660k 2000/10/16 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/15 8:06
    Cygwin DLL version info:
        dll major: 1001
        dll minor: 5
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        api major: 0
        api minor: 29
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        build date: Sun Oct 15 00:06:17 EDT 2000
        snapshot date: 2000-10-14-23:55-EST
        shared id: cygwin1S3

Use -h to see help about each section
MW1G17C%


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list