X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_75,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: "jpa" Subject: Re: Long file names not working in cygwin-1.7.0-48 Date: Fri, 29 May 2009 12:27:57 -0700 Lines: 99 Message-ID: References: <20090520135009 DOT 5D9C3BD0 AT resin18 DOT mta DOT everyone DOT net> <4A1DA33D DOT 1080406 AT cygwin DOT com> <20090528051242 DOT GA13874 AT ednor DOT casa DOT cgf DOT cx> <20090529183702 DOT GA28223 AT ednor DOT casa DOT cgf DOT cx> 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 "Christopher Faylor" wrote in message news:20090529183702 DOT GA28223 AT ednor DOT casa DOT cgf DOT cx... > On Fri, May 29, 2009 at 09:39:23AM -0700, jpa wrote: >>"Christopher Faylor" wrote: >>>On Wed, May 27, 2009 at 05:11:55PM -0700, jpa wrote: >>>># Create long directory path fails (255 a's/255 b's mkdir -p /tmp/[SNIP >>>>long dir name]> >>>Thanks for the test case. This should be fixed in the next snapshot >>>which is building now. I'll be in bed before it finishes but if there >>>are problems uploading it I'll restart it tomorrow. >>> >>>http://cygwin.com/snapshots/ >>> >>>Btw, the second set of "b"'s isn't necessary. A single b would trigger >>>the problem. >> >>Thank you. This problem has been fixed with the 5-28-2009 snapshot. >>Unfortunately I now have a different but probably related problem. I >>am unable to create a file or directory with a period as the first >>character. >> >>mkdir .test returns "/bin/mkdir: cannot create directory `.test': No >>such file or directory" > > l:\>bash > bash-3.2$ cd /tmp > bash-3.2$ mkdir .test > bash-3.2$ exit > exit > >>However this only happens in my cwrsync installation which uses cygwin. >>Rolling back to 1.7.0-48 allows periods at the beginning. In my test >>install >>of cygwin on a WinXP box I can't trigger the error. > > Sorry but I don't care about cwrsync. If you can generate a test case > for a bona fide Cygwin installation, I'll investigate. > > FWIW, it is hard to believe that the change I made for this would affect > files beginning with dots in any way. > > cgf > Thanks for testing. I can't tell what's different about my cwrsync config so I strace'd a test mkdir with a period using a 1.7.0-48 and snapshot cygwin dll and looked for differences. I found several differences where a \ was at the end of some lines where it wasn't in the successfull pass. I've reduced the strace from an unsuccessful run to this: mount_info::conv_to_posix_path: conv_to_posix_path (C:\Program Files\ICW\Bin\, no-keep-rel, add-slash) normalize_win32_path: C:\Program Files\ICW\Bin\ = normalize_win32_path (C:\Program Files\ICW\Bin\) mount_info::conv_to_posix_path: /Bin/ = conv_to_posix_path (C:\Program Files\ICW\Bin\) cwdstuff::get: posix /Bin/ cwdstuff::get: (/Bin/) = cwdstuff::get (0xA701A0, 32768, 1, 0), errno 0 normalize_posix_path: /Bin//.test = normalize_posix_path (.test) mount_info::conv_to_win32_path: conv_to_win32_path (/Bin//.test) set_flags: flags: binary (0x2) mount_info::conv_to_win32_path: src_path /Bin//.test, dst C:\Program Files\ICW\Bin\\.test, flags 0x3000A, rc 0 __set_errno: save_errno::~save_errno():47 val 0 __set_errno: save_errno::~save_errno():47 val 0 symlink_info::check: 0xC0000033 = NtQueryInformationFile (\??\C:\Program Files\ICW\Bin\\.test) symlink_info::check: not a symlink symlink_info::check: 0 = symlink.check (C:\Program Files\ICW\Bin\\.test, 0x223848) (0x3000A) mount_info::conv_to_win32_path: conv_to_win32_path (/Bin/) Where a successful run produces this: mount_info::conv_to_posix_path: conv_to_posix_path (C:\Program Files\ICW\Bin, no-keep-rel, no-add-slash) normalize_win32_path: C:\Program Files\ICW\Bin = normalize_win32_path (C:\Program Files\ICW\Bin) mount_info::conv_to_posix_path: /Bin = conv_to_posix_path (C:\Program Files\ICW\Bin) cwdstuff::get: posix /Bin cwdstuff::get: (/Bin) = cwdstuff::get (0xA701A0, 32768, 1, 0), errno 0 normalize_posix_path: /Bin/.test = normalize_posix_path (.test) mount_info::conv_to_win32_path: conv_to_win32_path (/Bin/.test) set_flags: flags: binary (0x2) mount_info::conv_to_win32_path: src_path /Bin/.test, dst C:\Program Files\ICW\Bin\.test, flags 0x3000A, rc 0 __set_errno: save_errno::~save_errno():47 val 0 __set_errno: save_errno::~save_errno():47 val 0 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\Program Files\ICW\Bin\.test) __set_errno: save_errno::~save_errno():47 val 0 __set_errno: save_errno::~save_errno():47 val 0 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\C:\Program Files\ICW\Bin\.test.lnk) symlink_info::check: 0 = symlink.check (C:\Program Files\ICW\Bin\.test, 0x223848) (0x3000A) -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/