Назад | Перейти на главную страницу

Предотвращение "призрачных" точек монтирования AFP

У нас проблема с клиентами OSX 10.6, которые видят «призрачные» точки подключения к OSX Server 10.5 через AFP. Иногда (5 раз за последний месяц) клиентский компьютер, кажется, имеет какие-то проблемы с подключением к серверу, и перемонтирует общий ресурс. Finder выглядит нормально на протяжении всего процесса, но в /Volumes/ старое монтирование остается как каталог, а новая точка появляется в /Volumes/ с инкрементным суффиксом; Например.:

lrwxr-xr-x   1 root    admin    1 Feb  3 12:39 Macintosh HD -> /
dr-x------@  9 cutter  staff  264 Jun  4  2008 Produktion
drwxrwxr-x  10 cutter  staff  408 Jan  5 07:44 Simplex TimeMachine
dr-x------@  7 cutter  staff  264 Jun  4  2008 Transfer
drwxr-xr-x+  3 cutter  admin  102 Jan 13 14:24 Voyager
drwxr-xr-x+  3 cutter  admin  102 Jan 18 10:28 Voyager-1
drwxr-xr-x+  3 cutter  admin  102 Jan 25 09:20 Voyager-2
drwxr-xr-x+  3 cutter  admin  102 Jan 25 16:31 Voyager-3
drwxr-xr-x+  3 cutter  admin  102 Feb  3 08:30 Voyager-4
drwx------@ 10 cutter  staff  296 Jan 13 13:12 Voyager-5

Но Finder показывает пользователям обычный ресурс «Вояджера», и нет никаких указаний на то, что какие-то гремлины работают.

Ошибка поиска OSX http://www.dietpizza.ch/images/finder-bug.png

В то время как Finder позволяет людям переходить к целевому файлу в общей папке (мы «видим» /Voyager/myfile.txt), любой путь к файлу, используемый в нашем программном обеспечении, имеет нумерованный суффикс (например, /Voyager-5/myfile.txt). После перемонтирования точки монтирования с новым суффиксом (/Voyager-6) старый путь становится недействительным. Наше программное обеспечение сохраняет постоянную ссылку на файл, и когда оно пытается получить к нему доступ, бум! Но для пользователя, просматривающего Finder, очевидной проблемы нет.

Я grep'd системные журналы для подсказок, но на самом деле, кажется, не так уж и много:

manoa:Logs stu$ grep mount *
system.log.4:Feb  3 08:53:33 Streaming1-MacPro fseventsd[38]: check_vol_last_mod_time:XXX failed to get mount time (25; &mount_time == 0x10043f8b8)
system.log.4:Feb  3 09:31:44 Streaming1-MacPro UnmountAssistant[811]: Volume unmounted successfully
system.log.5:Feb  2 09:28:56 Streaming1-MacPro UnmountAssistant[10763]: Volume unmounted successfully
system.log.6:Feb  1 12:26:17 Streaming1-MacPro UnmountAssistant[2277]: 
system.log.7:Jan 28 13:54:05 Streaming1-MacPro fseventsd[38]: check_vol_last_mod_time:XXX failed to get mount time (25; &mount_time == 0x10077f8b8)
system.log.7:Jan 28 13:55:34 Streaming1-MacPro UnmountAssistant[27673]: Volume unmounted successfully
system.log.7:Jan 28 13:55:36 Streaming1-MacPro UnmountAssistant[27673]: Volume unmounted successfully

и grep'ing для метки времени последнего "фантомного" показа общего ресурса:

system.log.4:Feb  3 08:30:33 localhost com.apple.launchd[1]: *** launchd[1] has started up. ***
system.log.4:Feb  3 08:30:37 localhost mDNSResponder[17]: mDNSResponder mDNSResponder-214 (Oct 16 2009 06:09:30) starting
system.log.4:Feb  3 08:30:38 Streaming1-MacPro configd[15]: setting hostname to "Streaming1-MacPro.local"
system.log.4:Feb  3 08:30:38 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb  3 08:30:42 Streaming1-MacPro bootlog[44]: BOOT_TIME: 1265182233 0
system.log.4:Feb  3 08:30:45 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb  3 08:30:46 Streaming1-MacPro com.apple.usbmuxd[26]: usbmuxd-176 built for iTunesNineDot on Sep 24 2009 at 16:11:05, running 32 bit
system.log.4:Feb  3 08:30:46 Streaming1-MacPro configd[15]: network configuration changed.
system.log.4:Feb  3 08:30:46 Streaming1-MacPro com.intego.commonservices.daemon[53]: Using preferences format 3
system.log.4:Feb  3 08:30:46 Streaming1-MacPro com.apple.SystemStarter[27]: Starting Qmaster services
system.log.4:Feb  3 08:30:47 Streaming1-MacPro blued[45]: Apple Bluetooth daemon started
system.log.4:Feb  3 08:30:47 Streaming1-MacPro /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[34]: Login Window Application Started
system.log.4:Feb  3 08:30:49 Streaming1-MacPro loginwindow[34]: Login Window Started Security Agent
system.log.4:Feb  3 08:30:49 Streaming1-MacPro WindowServer[72]: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
system.log.4:Feb  3 08:30:49 Streaming1-MacPro com.apple.WindowServer[72]: Wed Feb  3 08:30:49 Streaming1-MacPro.local WindowServer[72] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.

Там есть сетевые штуки, но ничего страшного.

На Intertubes есть небольшая информация относительно подобных проблем, и большинство людей, похоже, говорят:

Эти машины обычно работают круглосуточно и без выходных в редакции новостей и сообщают моим производственным пользователям «просто выполните эти четыре технических задания, и это будет нормально еще несколько дней / недель, и вам придется делать это снова в какой-то момент» не проходит очень хорошо.

Я бы хотел навсегда исправить - эти надоедливые тома-призраки должны исчезнуть и больше никогда не возвращаться!

Информация о клиенте:

Выход mount:

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Volumes/Simplex TimeMachine (hfs, local, nodev, nosuid, journaled)
afp_4gqctq000egI0000oM0000VU-1.2d000003 on /Volumes/Produktion (afpfs, nodev, nosuid, mounted by cutter)
afp_4gqctq000egI0000oM0000VU-2.2d000004 on /Volumes/Voyager-5 (afpfs, nodev, nosuid, mounted by cutter)
afp_4gqctq000egI0000oM0000VU-3.2d000005 on /Volumes/Transfer (afpfs, nodev, nosuid, mounted by cutter)

На первый взгляд релевантные фрагменты системного профиля:

  Model Identifier:              MacPro4,1
  Processor Name:                Quad-Core Intel Xeon
  Processor Speed:               2.66 GHz
  Number Of Processors:          2
  Memory:                        8 GB
  Boot ROM Version:              MP41.0081.B03
  SMC Version (system):          1.39f5
  SMC Version (processor tray):  1.39f5

  Type:         afpfs
  Mount Point:  /Volumes/Voyager-5
  Automounted:  No

Информация на сервере:

На первый взгляд релевантные фрагменты системного профиля:

  Model Identifier:     Xserve1,1
  Processor Name:       Dual-Core Intel Xeon
  Processor Speed:      2.66 GHz
  Number Of Processors: 2
  Boot ROM Version:     XS11.0080.B03
  SMC_version:          1.11f5
  LOM Revision:         1.2.8

Fibre Channel Domain 2:
  Vendor:   LSILogic
  Product:  LSI7404EP
  Revision: Firmware 1.3.14.0
  Speed:    2 Gigabit

SCSI Target Device @ 0:
  Manufacturer: APPLE
  Model:        Xserve RAID
  Revision:     1.50
SCSI Logical Unit @ 0:    
  Capacity:           2,18 TB
  Manufacturer:       APPLE
  Model:              Xserve RAID
  Revision:           1.50
  Mac OS 9 Drivers:   No
  Partition Map Type: APM (Apple Partition Map)
  Volumes:
R_Xraid-Mars:
  Capacity:      2,18 TB
  Writable:      Yes
  File System:   Journaled HFS+
  Mount Point:   /Volumes/R_Xraid-Mars

Причина, скорее всего, связана с одним из ваших приложений.

Для нас это было связано с Vectorworks 2008. Это кроссплатформенное приложение, которое, похоже, хранит свою собственную копию текущего каталога в диалоговом окне «Сохранить / Открыть» и не использует для этого средства системы OS X. Мы и раньше находили другие ошибки, связанные с неэкранированными путями (например, пользователи ставят косую черту в имени файла, это интерпретируется как разделитель пути и т. Д.).

Шаги по воспроизведению были:

  1. Перейдите к серверу в диалоговом окне открытия / сохранения Vectorworks
  2. Выйти из приложения
  3. Отключиться от сервера
  4. Очистите / Volumes и откройте окно Finder в / Volumes, чтобы следить за новыми призраками.
  5. Запустить приложение
  6. Используйте «Файл»> «Открыть» и наблюдайте, как создается общий ресурс-призрак, как только появляется диалоговое окно «Открыть / сохранить». Обратите внимание, что на этом этапе мы не подключены к серверу, поэтому диалоговое окно «Открыть / сохранить» перенаправляет на домашний каталог пользователя.

Призрачный общий ресурс, который создается на шаге 6, имеет тот же числовой суффикс, что и последний реальный общий ресурс, что настоятельно указывает на то, что это проблема с внутренним кодом приложения. Т.е. если последним реальным подключением было «Активные проекты-4», приложение создаст папку -4, но на самом деле повторное подключение к серверу создаст точку монтирования с -5 или чем-то еще.

Я предполагаю, что вам придется пройти через метод проб и ошибок с любым набором приложений. Один намек: нам настоятельно рекомендовали взглянуть на Vectorworks, когда мы просматривали содержимое этих призрачных общих ресурсов. Наши были вложенными подпапками по одному пути, которые обычно содержали только документы Vectorworks (то есть то, что вы получаете с mkdir -p /path/to/subfolder).