Testers needed: New passwd/group handling in Cygwin

Achim Gratz Stromeko@NexGo.DE
Mon Mar 10 18:14:00 GMT 2014


Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:
> The fact that the shells are doing it right seems to indicate that this
> isn't a generic problem.  I can't debug this, though.  Can you see if
> you can figure out what's going on under the hood?  Does strace show
> anything of interest?  Can we perhaps set up some joint debugging via
> private mail during the next couple of days?

Perl goes through stat64 that seems to explicitly check the ACL while sh
uses a different codepath.  I don't see anything obviously wrong with either
trace.  If I set up cygdrive to use the noacl option the problem goes away,
apparently because the ACL check never takes place within stat64.

  869 2501512 [main] perl 2604 stat64: entering
  814 2502326 [main] perl 2604 normalize_posix_path: src x86
  802 2503128 [main] perl 2604 cwdstuff::get: posix /cygdrive/x/install
 1195 2504323 [main] perl 2604 cwdstuff::get: (/cygdrive/x/install) =
cwdstuff::get (0x80000008, 32768, 1, 0), errno 0
  810 2505133 [main] perl 2604 normalize_posix_path: /cygdrive/x/install/x86
= normalize_posix_path (x86)
 1195 2506328 [main] perl 2604 mount_info::conv_to_win32_path:
conv_to_win32_path (/cygdrive/x/install/x86)
  810 2507138 [main] perl 2604 mount_info::cygdrive_win32_path: src
'/cygdrive/x/install/x86', dst 'X:\install\x86'
  837 2507975 [main] perl 2604 set_flags: flags: binary (0x2)
  810 2508785 [main] perl 2604 mount_info::conv_to_win32_path: src_path
/cygdrive/x/install/x86, dst X:\install\x86, flags 0x4022, rc 0
 3329 2512114 [main] perl 2604 symlink_info::check: 0x0 = NtCreateFile
(\??\X:\install\x86)
 2816 2514930 [main] perl 2604 symlink_info::check: not a symlink
  845 2515775 [main] perl 2604 symlink_info::check: 0 =
symlink.check(X:\install\x86, 0x289888) (0x404022)
  839 2516614 [main] perl 2604 path_conv::check: this->path(X:\install\x86),
has_acls(1)
  828 2517442 [main] perl 2604 build_fh_pc: fh 0x612DD5A0, dev 000000C3
  816 2518258 [main] perl 2604 stat_worker: (\??\X:\install\x86, 0x800390D0,
0x612DD5A0), file_attributes 16
 1603 2519861 [main] perl 2604 cygpsid::debug_print: get_sids_info: owner
SID = S-1-5-21-2052111302-842925246-682003330-75441
  818 2520679 [main] perl 2604 cygpsid::debug_print: get_sids_info: group
SID = S-1-5-21-2052111302-842925246-682003330-513
  818 2521497 [main] perl 2604 get_info_from_sd: ACL 0x4000, uid 75441, gid
10513
  875 2522372 [main] perl 2604 fhandler_base::fstat_helper: 0 = fstat
(\??\X:\install\x86, 0x800390D0) st_size=0, st_mode=0x4000, st_ino=-197262732544
4575109st_atim=531DE525.1B5BB150 st_ctim=530C5D84.1F71B690
st_mtim=52D570D0.251FE418 st_birthtim=51EFE5A9.12BDBAC0

 1424 1978515 [main] sh 4736 normalize_posix_path: src x86
  882 1979397 [main] sh 4736 cwdstuff::get: posix /cygdrive/x/install
  918 1980315 [main] sh 4736 cwdstuff::get: (/cygdrive/x/install) =
cwdstuff::get (0x20000008, 32768, 1, 0), errno 0
 1647 1981962 [main] sh 4736 normalize_posix_path: /cygdrive/x/install/x86 =
normalize_posix_path (x86)
 1218 1983180 [main] sh 4736 mount_info::conv_to_win32_path:
conv_to_win32_path (/cygdrive/x/install/x86)
  932 1984112 [main] sh 4736 mount_info::cygdrive_win32_path: src
'/cygdrive/x/install/x86', dst 'X:\install\x86'
 2389 1986501 [main] sh 4736 set_flags: flags: binary (0x2)
 1221 1987722 [main] sh 4736 mount_info::conv_to_win32_path: src_path
/cygdrive/x/install/x86, dst X:\install\x86, flags 0x4022, rc 0
 4069 1991791 [main] sh 4736 symlink_info::check: 0x0 = NtCreateFile
(\??\X:\install\x86)
 2709 1994500 [main] sh 4736 symlink_info::check: not a symlink
  985 1995485 [main] sh 4736 symlink_info::check: 0 =
symlink.check(X:\install\x86, 0x289408) (0x404022)
  946 1996431 [main] sh 4736 path_conv::check: this->path(X:\install\x86),
has_acls(1)
  947 1997378 [main] sh 4736 build_fh_pc: fh 0x612DD8D8, dev 000000C3
 1935 1999313 [main] sh 4736 check_file_access: flags 0x2, ret 0
  971 2000284 [main] sh 4736 fhandler_base::fhaccess: returning 0
 1526 2001810 [main] sh 4736 euidaccess: returning 0

Regards,
Achim.


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