cygwin 1.7.9, problem with cygwin1.dll, path_conv::check, has_acls()? (Windows 7)

John Ruckstuhl john_ruckstuhl@hansenmedical.com
Wed Sep 14 17:57:00 GMT 2011


Larry Hall asks for more info:
> On 9/13/2011 8:40 PM, John Ruckstuhl wrote:
> > I'm trying to create files in the current dir, on a network fileserver.
>
> What do we know about this fileserver?

This required a visit with my friendly IT Team.
An HP Proliant DL380G5 running Windows 2003, with an external storage array -- an HP StorageWorks MSA 60.

> > I do have the necessary permissions.
>
> Can you show us with 'ls -l' and 'getfacl'?

$ icacls .
. HANSENMEDICAL\Domain Admins:(I)(OI)(CI)(F)
  HANSENMEDICAL\Domain Users:(I)(OI)(CI)(M)
  Everyone:(I)(OI)(CI)(F)

Successfully processed 1 files; Failed processing 0 files

$ ls -ld .
drwxrwxrwx+ 1 john_ruckstuhl Domain Users 0 Sep 13 16:48 .

$ getfacl -d .
# file: .
# owner: john_ruckstuhl
# group: Domain Users
default:user::---
default:group::rwx
default:group:Domain Users:rwx
default:mask:rwx
default:other:rwx

And I'm thinking the fact that I have success cases also demonstrates that I have the necessary permissions.
Also, I have no problem creating new files or dirs from cmd.exe or from Windows Explorer.

Thanks, and regards,
John Ruckstuhl

-----Original Message-----
From: John Ruckstuhl
Sent: Tuesday, September 13, 2011 5:41 PM
Subject: cygwin 1.7.9, problem with cygwin1.dll, path_conv::check, has_acls()? (Windows 7)

I'm trying to create files in the current dir, on a network fileserver.
I do have the necessary permissions.
The standard incantation fails, but some non-standard incantations succeed.
I'm willing to bet $10 that it's a cygwin1.dll problem, but I guess it's possible it's a bash problem.
I'll use "touch" to demonstrate:

    $ pwd
    //hyperdisk/Data/Engineering/ruck

These 3 fail:

    $ touch zoo.2
    touch: cannot touch `zoo.2': Permission denied

    $ touch ./zoo.4
    touch: cannot touch `./zoo.4': Permission denied

    $ touch $(pwd)/zoo.6
    touch: cannot touch `//hyperdisk/Data/Engineering/ruck/zoo.6': Permission denied

But these 3 succeed ?!

    $ touch .\\zoo.5

    $ touch $(pwd)\\zoo.7

    $ touch \\\\hyperdisk\\Data\\Engineering\\ruck\\zoo.1

This on Windows 7.
uname -a reports
    CYGWIN_NT-6.1 CND0360JCB 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin bash --version reports
    GNU bash, version 4.1.10(4)-release (i686-pc-cygwin)

I straced two, to compare the failure case with the success case.
    $ strace touch $(pwd)/zoo.6 > /tmp/strace.out
    $ strace touch $(pwd)\\zoo.7 > /tmp/strace.7.out (see attached)

Is this a known problem?  Is there a known workaround?
BTW, I tried with CYGWIN=ntsec, CYGWIN=nontsec, and CYGWIN null... did not solve.
Thanks,
John Ruckstuhl

The straces diverge soon after line 200, like:
------------------------------------------------------------------------
strace.out (fail case, touch $(pwd)/zoo.6)
------------------------------------------------------------------------
   200    375   33580 [main] touch 6444 open: open (//hyperdisk/Data/Engineering/ruck/zoo.6, 0xC201)
   201     44   33624 [main] touch 6444 normalize_posix_path: src //hyperdisk/Data/Engineering/ruck/zoo.6
   202     40   33664 [main] touch 6444 normalize_posix_path: //hyperdisk/Data/Engineering/ruck/zoo.6 = normalize_posix_path (//hyperdisk/Data/Engineering/ruck/zoo.6)
   203     49   33713 [main] touch 6444 mount_info::conv_to_win32_path: conv_to_win32_path (//hyperdisk/Data/Engineering/ruck/zoo.6)
   204     43   33756 [main] touch 6444 set_flags: flags: binary (0x2)
   205     40   33796 [main] touch 6444 mount_info::conv_to_win32_path: src_path //hyperdisk/Data/Engineering/ruck/zoo.6, dst \\hyperdisk\Data\Engineering\ruck\zoo.6, flags 0x4022, rc 0
   206   1450   35246 [main] touch 6444 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6)
   207     65   35311 [main] touch 6444 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6)
   208   1297   36608 [main] touch 6444 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.exe)
   209     74   36682 [main] touch 6444 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.exe)
   210   1202   37884 [main] touch 6444 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.lnk)
   211     57   37941 [main] touch 6444 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.lnk)
   212   1211   39152 [main] touch 6444 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.exe.lnk)
   213     58   39210 [main] touch 6444 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6.exe.lnk)
   214     46   39256 [main] touch 6444 symlink_info::check: 0 = symlink.check (\\hyperdisk\Data\Engineering\ruck\zoo.6, 0x22B740) (0x4022)
   215     45   39301 [main] touch 6444 mount_info::conv_to_win32_path: conv_to_win32_path (//hyperdisk/Data/Engineering/ruck)
   216     43   39344 [main] touch 6444 set_flags: flags: binary (0x2)
   217     51   39395 [main] touch 6444 mount_info::conv_to_win32_path: src_path //hyperdisk/Data/Engineering/ruck, dst \\hyperdisk\Data\Engineering\ruck, flags 0x4022, rc 0
   218   1008   40403 [main] touch 6444 symlink_info::check: 0x0 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck)
   219   1136   41539 [main] touch 6444 symlink_info::check: not a symlink
   220    490   42029 [main] touch 6444 symlink_info::check: 0 = symlink.check (\\hyperdisk\Data\Engineering\ruck, 0x22B740) (0x4022)
   221     69   42098 [main] touch 6444 path_conv::check: this->path(\\hyperdisk\Data\Engineering\ruck\zoo.6), has_acls(1)
   222     63   42161 [main] touch 6444 build_fh_pc: fh 0x6124403C
   223     53   42214 [main] touch 6444 fhandler_base::open: (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6, 0x10C201)
   224   1848   44062 [main] touch 6444 seterrno_from_nt_status: /ext/build/netrel/src/cygwin-1.7.9-1/winsup/cygwin/fhandler.cc:605 status 0xC0000022 -> windows error 5
   225     59   44121 [main] touch 6444 geterrno_from_win_error: windows error 5 == errno 13
   226     46   44167 [main] touch 6444 fhandler_base::open: C0000022 = NtCreateFile (0xA08020, 40160080, \??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6, io, NULL, 80, 7, 3, 4020, NULL, 0)
   227     41   44208 [main] touch 6444 fhandler_base::open: 0 = fhandler_base::open (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6, 0x10C201)
   228     37   44245 [main] touch 6444 fhandler_base::open_fs: 0 = fhandler_disk_file::open (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.6, 0xC201)
   229     42   44287 [main] touch 6444 open: -1 = open (//hyperdisk/Data/Engineering/ruck/zoo.6, 0xC201)
   ...

------------------------------------------------------------------------
strace.7.out (success case, touch $(pwd)\\zoo.7)
------------------------------------------------------------------------
   200    364   35747 [main] touch 6840 open: open (//hyperdisk/Data/Engineering/ruck\zoo.7, 0xC201)
   201     38   35785 [main] touch 6840 normalize_posix_path: src //hyperdisk/Data/Engineering/ruck\zoo.7
   202     39   35824 [main] touch 6840 normalize_win32_path: \\hyperdisk\Data\Engineering\ruck\zoo.7 = normalize_win32_path (//hyperdisk/Data/Engineering/ruck\zoo.7)
   203     39   35863 [main] touch 6840 mount_info::conv_to_win32_path: conv_to_win32_path (//hyperdisk/Data/Engineering/ruck/zoo.7)
   204     34   35897 [main] touch 6840 set_flags: flags: binary (0x2)
   205     31   35928 [main] touch 6840 mount_info::conv_to_win32_path: src_path //hyperdisk/Data/Engineering/ruck/zoo.7, dst \\hyperdisk\Data\Engineering\ruck\zoo.7, flags 0x4022, rc 0
   206   1567   37495 [main] touch 6840 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7)
   207     64   37559 [main] touch 6840 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7)
   208   1368   38927 [main] touch 6840 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.exe)
   209     62   38989 [main] touch 6840 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.exe)
   210   1358   40347 [main] touch 6840 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.lnk)
   211     56   40403 [main] touch 6840 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.lnk)
   212   1440   41843 [main] touch 6840 symlink_info::check: 0xC0000034 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.exe.lnk)
   213     64   41907 [main] touch 6840 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7.exe.lnk)
   214     40   41947 [main] touch 6840 symlink_info::check: 0 = symlink.check (\\hyperdisk\Data\Engineering\ruck\zoo.7, 0x22B740) (0x6022)
   215     32   41979 [main] touch 6840 mount_info::conv_to_win32_path: conv_to_win32_path (//hyperdisk/Data/Engineering/ruck)
   216     39   42018 [main] touch 6840 set_flags: flags: binary (0x2)
   217     33   42051 [main] touch 6840 mount_info::conv_to_win32_path: src_path //hyperdisk/Data/Engineering/ruck, dst \\hyperdisk\Data\Engineering\ruck, flags 0x4022, rc 0
   218   1022   43073 [main] touch 6840 symlink_info::check: 0x0 = NtCreateFile (\??\UNC\hyperdisk\Data\Engineering\ruck)
   219   1255   44328 [main] touch 6840 symlink_info::check: not a symlink
   220    485   44813 [main] touch 6840 symlink_info::check: 0 = symlink.check (\\hyperdisk\Data\Engineering\ruck, 0x22B740) (0x6022)
   221     48   44861 [main] touch 6840 path_conv::check: this->path(\\hyperdisk\Data\Engineering\ruck\zoo.7), has_acls(0)
   222     57   44918 [main] touch 6840 build_fh_pc: fh 0x6124403C
   223     47   44965 [main] touch 6840 fhandler_base::open: (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7, 0x10C201)
   224   3483   48448 [main] touch 6840 fhandler_base::set_flags: flags 0x10C201, supplied_bin 0x10000
   225     80   48528 [main] touch 6840 fhandler_base::set_flags: filemode set to binary
   226     40   48568 [main] touch 6840 fhandler_base::open: 0 = NtCreateFile (0x158, 40120080, \??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7, io, NULL, 80, 7, 3, 4020, NULL, 0)
   227     38   48606 [main] touch 6840 fhandler_base::open: 1 = fhandler_base::open (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7, 0x10C201)
   228     57   48663 [main] touch 6840 fhandler_base::open_fs: 1 = fhandler_disk_file::open (\??\UNC\hyperdisk\Data\Engineering\ruck\zoo.7, 0xC201)
   229     41   48704 [main] touch 6840 open: 3 = open (//hyperdisk/Data/Engineering/ruck\zoo.7, 0xC201)
   230     34   48738 [main] touch 6840 dtable::dup3: dup3 (3, 0, 0x0)
   231     37   48775 [main] touch 6840 build_fh_pc: fh 0x6124435C
   232     40   48815 [main] touch 6840 fhandler_base::dup: in fhandler_base dup
   233     39   48854 [main] touch 6840 dtable::dup_worker: duped '//hyperdisk/Data/Engineering/ruck/zoo.7' old 0x158, new 0x15C
   234     35   48889 [main] touch 6840 dtable::dup3: newfh->io_handle 0x15C, oldfh->io_handle 0x158, new win32_name 0x61243ADC, old win32_name 0x61244244
   235     45   48934 [main] touch 6840 close: close (0)
   236    157   49091 [main] touch 6840 init_cygheap::manage_console_count: fhandler_console::close: console_count 1, amount -1, ctty /dev/console, avoid_freeing_console 0
   237     54   49145 [main] touch 6840 close: 0 = close (0)
   238     42   49187 [main] touch 6840 dtable::dup3: 0 = dup3 (3, 0, 0x0)
   239     44   49231 [main] touch 6840 close: close (3)
   240     37   49268 [main] touch 6840 fhandler_base::close: closing '//hyperdisk/Data/Engineering/ruck/zoo.7' handle 0x158
   241     62   49330 [main] touch 6840 close: 0 = close (3)
   242     56   49386 [main] touch 6840 dup2: 0 = dup2 (0, 0) (newfd==oldfd)
   243   1493   50879 [main] touch 6840 fhandler_base::utimens_fs: incoming lastaccess 4E6FCD36 37EC4BE0
   244    463   51342 [main] touch 6840 futimens: 0 = futimens (0, 0x0)
   245     44   51386 [main] touch 6840 close: close (0)
   246     70   51456 [main] touch 6840 fhandler_base::close: closing '//hyperdisk/Data/Engineering/ruck/zoo.7' handle 0x15C
   247    147   51603 [main] touch 6840 close: 0 = close (0)
   248    117   51720 [main] touch 6840 _cygwin_istext_for_stdio: fd 0: not open
   249     29   51749 [main] touch 6840 _cygwin_istext_for_stdio: fd 1: opened as binary
   250     26   51775 [main] touch 6840 _cygwin_istext_for_stdio: fd 2: opened as binary
   251    194   51969 [main] touch 6840 close: close (1)
   252     27   51996 [main] touch 6840 fhandler_base::close: closing '/tmp/strace.7.out' handle 0x130
   253     38   52034 [main] touch 6840 close: 0 = close (1)
   254    292   52326 [main] touch 6840 close: close (2)
   255    103   52429 [main] touch 6840 init_cygheap::manage_console_count: fhandler_console::close: console_count 0, amount -1, ctty /dev/console, avoid_freeing_console 0
   256     34   52463 [main] touch 6840 close: 0 = close (2)
   257    348   52811 [main] touch 6840 close: close (0)
   258     28   52839 [main] touch 6840 __set_errno: cygheap_fdget::cygheap_fdget(int, bool, bool):393 val 9
   259     27   52866 [main] touch 6840 close: -1 = close (0)
   260    135   53001 [main] touch 6840 do_exit: do_exit (0), exit_state 1
   261    205   53206 [main] touch 6840 void: 0x0 = signal (20, 0x1)
   262     35   53241 [main] touch 6840 void: 0x0 = signal (1, 0x1)
   263     30   53271 [main] touch 6840 void: 0x0 = signal (2, 0x1)
   264     26   53297 [main] touch 6840 void: 0x0 = signal (3, 0x1)
   265     49   53346 [main] touch 6840 sigproc_terminate: entering
   266     27   53373 [main] touch 6840 sig_send: sendsig 0xD8, pid 6840, signal -42, its_me 1
   267     36   53409 [main] touch 6840 sig_send: Not waiting for sigcomplete.  its_me 1 signal -42
   268     29   53438 [main] touch 6840 sig_send: returning 0x0 from sending signal -42
   269    -24   53414 [sig] touch 6840 wait_sig: saw __SIGEXIT
   270     74   53488 [main] touch 6840 proc_terminate: nprocs 0
   271     29   53517 [sig] touch 6840 wait_sig: signal thread exiting
   272     -1   53516 [main] touch 6840 proc_terminate: leaving
   273     54   53570 [main] touch 6840 __to_clock_t: dwHighDateTime 0, dwLowDateTime 312002
   274     29   53599 [main] touch 6840 __to_clock_t: total 00000000 0000001F
   275     35   53634 [main] touch 6840 __to_clock_t: dwHighDateTime 0, dwLowDateTime 156001
   276     38   53672 [main] touch 6840 __to_clock_t: total 00000000 0000000F
   277   1698   55370 [main] touch 6840 pinfo::exit: Calling ExitProcess n 0x0, exitcode 0x0

--
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



More information about the Cygwin mailing list