X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Lester Ingber Subject: Re: untarring symlinks with ../ fails randomly Date: Mon, 25 Apr 2011 14:59:45 +0000 (UTC) Lines: 113 Message-ID: References: <20110424121145 DOT GB30696 AT calimero DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit User-Agent: Loom/3.14 (http://gmane.org/) X-IsSubscribed: yes 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 Corinna Vinschen cygwin.com> writes: > > On Apr 24 17:14, Dima Pasechnik wrote: > > Dear all, > > reposting, as the message did not get through to the mailing list yesterday: > > > > The issue I have is exactly as described in > > http://sourceware.org/ml/cygwin/2011-04/msg00299.html > > I can reproduce this on a very similar Windows 7 host. > > (To be precise, it seems hard to predict when creating symlinks fails; > > I could say > > that perhaps 20% of them, on average, are not created correctly (i.e. > > I get files of size 0 instead)). > > A simple testcase in plain C to reproduce the issue would be fine. > Did you try to create the symlinks under strace? It should contain > some valuable hint from the function "symlink_worker". > > Corinna > The problem seems to be with untar, not tar per se. Just today, I did `tar cp` a directory of a few hundred links under Cygwin. Under an unbuntu machine I recovered all files and links just fine. Under Cygwin, all files were 0 and permissions were "----------" instead of "lrwxrwxrwx" as in the original directory. (Yesterday, half the links were 0. After compiling tar-12.6 from gnu.org I still got 8 0's. I then moved that tar to tar-1.26 yesterday.) I include an excerpt of the log of `tar xfp` doing this with strace just for one file, index.html. 2510 1010065 [main] tar 7272 open: open (/home/ingber/www-ssl/index.html, 0xA01) 247 1010312 [main] tar 7272 normalize_posix_path: src /home/ingber/www- ssl/index.html 93 1010405 [main] tar 7272 normalize_posix_path: /home/ingber/www- ssl/index.html = normalize_posix_path (/home/ingber/www-ssl/index.html) 154 1010559 [main] tar 7272 mount_info::conv_to_win32_path: conv_to_win32_path (/home/ingber/www-ssl/index.html) 262 1010821 [main] tar 7272 set_flags: flags: binary (0x2) 152 1010973 [main] tar 7272 mount_info::conv_to_win32_path: src_path /home/ingber/www-ssl/index.html, dst C:\cygwin\home\ingber\www-ssl\index.html, flags 0x3000A, rc 0 255 1011228 [main] tar 7272 symlink_info::check: 0xC0000034 = NtCreateFile (\??\C:\cygwin\home\ingber\www-ssl\index.html) 197 1011425 [main] tar 7272 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\cygwin\home\ingber\www-ssl\index.html) 280 1011705 [main] tar 7272 symlink_info::check: 0xC0000034 = NtCreateFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.exe) 205 1011910 [main] tar 7272 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.exe) 260 1012170 [main] tar 7272 symlink_info::check: 0xC0000034 = NtCreateFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.lnk) 162 1012332 [main] tar 7272 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.lnk) 262 1012594 [main] tar 7272 symlink_info::check: 0xC0000034 = NtCreateFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.exe.lnk) 199 1012793 [main] tar 7272 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\cygwin\home\ingber\www-ssl\index.html.exe.lnk) 188 1012981 [main] tar 7272 symlink_info::check: 0 = symlink.check (C:\cygwin\home\ingber\www-ssl\index.html, 0x28B590) (0x3000A) 241 1013222 [main] tar 7272 mount_info::conv_to_win32_path: conv_to_win32_path (/home/ingber/www-ssl) 122 1013344 [main] tar 7272 set_flags: flags: binary (0x2) 213 1013557 [main] tar 7272 mount_info::conv_to_win32_path: src_path /home/ingber/www-ssl, dst C:\cygwin\home\ingber\www-ssl, flags 0x3000A, rc 0 243 1013800 [main] tar 7272 symlink_info::check: 0x0 = NtCreateFile (\?? \C:\cygwin\home\ingber\www-ssl) 235 1014035 [main] tar 7272 symlink_info::check: not a symlink 233 1014268 [main] tar 7272 symlink_info::check: 0 = symlink.check (C:\cygwin\home\ingber\www-ssl, 0x28B590) (0x3000A) 110 1014378 [main] tar 7272 path_conv::check: this- >path(C:\cygwin\home\ingber\www-ssl\index.html), has_acls(1) 147 1014525 [main] tar 7272 build_fh_pc: fh 0x61244584 305 1014830 [main] tar 7272 fhandler_base::open: (\?? \C:\cygwin\home\ingber\www-ssl\index.html, 0x100A01) 1307 1016137 [main] tar 7272 alloc_sd: uid -1, gid -1, attribute 80000000 196 1016333 [main] tar 7272 cygsid::debug_print: alloc_sd: owner SID = S-1-5- 21-2524525894-1771701056-721517013-1000 (+) 215 1016548 [main] tar 7272 cygsid::debug_print: alloc_sd: group SID = S-1-5- 21-2524525894-1771701056-721517013-513 (+) 217 1016765 [main] tar 7272 alloc_sd: ACL-Size: 100 450 1017215 [main] tar 7272 alloc_sd: Created SD-Size: 176 416 1017631 [main] tar 7272 set_file_attribute: 0 = set_file_attribute (\?? \C:\cygwin\home\ingber\www-ssl\index.html, -1, -1, 0x80000000) 151 1017782 [main] tar 7272 fhandler_base::set_flags: flags 0x100A01, supplied_bin 0x10000 72 1017854 [main] tar 7272 fhandler_base::set_flags: filemode set to binary 115 1017969 [main] tar 7272 fhandler_base::open: 0 = NtCreateFile (0x198, 40160080, \??\C:\cygwin\home\ingber\www-ssl\index.html, io, NULL, 80, 7, 2, 4020, NULL, 0) 147 1018116 [main] tar 7272 fhandler_base::open: 1 = fhandler_base::open (\?? \C:\cygwin\home\ingber\www-ssl\index.html, 0x100A01) 403 1018519 [main] tar 7272 fhandler_base::open_fs: 1 = fhandler_disk_file::open (\??\C:\cygwin\home\ingber\www-ssl\index.html, 0xA01) 202 1018721 [main] tar 7272 open: 4 = open (/home/ingber/www-ssl/index.html, 0xA01) 425 1019146 [main] tar 7272 cygpsid::debug_print: get_sids_info: owner SID = S-1-5-21-2524525894-1771701056-721517013-1000 190 1019336 [main] tar 7272 cygpsid::debug_print: get_sids_info: group SID = S-1-5-21-2524525894-1771701056-721517013-513 204 1019540 [main] tar 7272 get_info_from_sd: ACL 0, uid 1000, gid 513 335 1019875 [main] tar 7272 fhandler_base::fstat_helper: 0 = fstat (\?? \C:\cygwin\home\ingber\www-ssl\index.html, 0x28CB28) st_atime=4DB58943 st_size=0, st_mode=0x8000, st_ino=11540474045393930, sizeof=96 179 1020054 [main] tar 7272 fstat64: 0 = fstat (4, 0x28CB28) 202 1020256 [main] tar 7272 close: close (4) 154 1020410 [main] tar 7272 fhandler_base::close: closing '/home/ingber/www- ssl/index.html' handle 0x198 -- 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