[OpenAFS] =?UTF-8?Q?Re=3A_=5BOpenAFS=5D_Re=3A_=5BOpenAFS=5D_AW=3A_Re=3A_=5BOpenAF?= =?UTF-8?Q?S=5D_Windows_client_Cygwin=0A_and_symlinks_on_afs_volume?=

Axel Müller a.mueller@procitec.de
Wed, 13 Apr 2011 11:40:00 +0200


-----Ursprüngliche Nachricht-----
> Whatever the failure is, it is not because of how the symlink is
> created.  Determine which Win32 File Operation is failing using Process
> Monitor and discuss that.  The fact that the object is a symlink is a
> red-herring.
OK. The failure does not depend how the symlink is created (I tried ln from Linux and symlink.exe from Windows). You are absolutely right.

I used Process Monitor as you advised. I monitored the ls.exe process when I did "ls /cygdrive/z/WorkSpaces/ws_Test/AutoTests/APC_EW_klein/psp003_alis_dat11_13". 
Here are the relevant parts.
"09:48:38,1208047","ls.exe","4076","CreateFile","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Open For Backup, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"09:48:38,1211008","ls.exe","4076","CloseFile","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein","SUCCESS","" 
....some registry reads ...
"09:48:38,1244345","ls.exe","4076","CreateFile","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS","Desired Access: Read Attributes, Read Control, Disposition: Open, Options: Open For Backup, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"09:48:38,1247575","ls.exe","4076","QueryInformationVolume","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS","VolumeCreationTime: 01.10.1982 08:00:00, VolumeSerialNumber: 0000-04D2, SupportsObjects: True, VolumeLabel: AFS"
"09:48:38,1248597","ls.exe","4076","QueryDeviceInformationVolume","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS","DeviceType: Disk, Characteristics: Remote"
"09:48:38,1248773","ls.exe","4076","QueryAttributeInformationVolume","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS","FileSystemAttributes: Case Preserved, Case Sensitive, Unicode, 0x4000, MaximumComponentNameLength: 255, FileSystemName: AFS"
"09:48:38,1251603","ls.exe","4076","QueryObjectIdInformationVolume","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","INVALID PARAMETER",""
"09:48:38,1251868","ls.exe","4076","QueryBasicInformationFile","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS","CreationTime: 25.01.2011 10:33:12, LastAccessTime: 25.01.2011 10:33:12, LastWriteTime: 25.01.2011 10:33:12, ChangeTime: 25.01.2011 10:33:12, FileAttributes: N"
"09:48:38,1253109","ls.exe","4076","CloseFile","Z:\WorkSpaces\ws_Test\AutoTests\APC_EW_klein\psp003_alis_dat11_13","SUCCESS",""

The difference to a "normal" directory is the FileAttribute returned by QueryBasicInformationFile.
For the symlink it is "N" and for a "normal" directory it is "D". I guess that's why the ls fails.


BTW, I have several problems with the //afs/ syntax. 
First, it is very slow (takes several dozenz of seconds (I experienced the same with Windows Explorer). Second, it fails when I have no right to create files in the AFS directory I want to list (CreateFile return FAILURE).