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

FreeBSD: демон netatalk3 продолжает перезапуск

Я установил демон netatalk3 / afpd на моем сервере FreeBSD около полгода назад и использовал его как сетевой TimeMachine для своего MacBook Pro. Практически зажег и забудь.

Затем, в начале этого месяца, я обновился с версии 3.1.2,1 к 3.1.7,1.
Из того, что я могу реконструировать, это произошло в рамках FreeBSD 10.0 -> 10.1 Обновить.

Мне потребовалось время, чтобы заметить, что демон больше не работает; собственно, MacBook через некоторое время стал жаловаться на пропущенные резервные копии.

Изучая проблему, кажется, что демон netatalk3 продолжает перезапуск, но хотя я увеличил уровень журнала в /usr/local/etc/afp.conf с помощью log level = default:debug, похоже, нет никаких намеков на то, в чем причина перезапуска:

Jan 24 19:06:24.841243 netatalk[8651] {netatalk.c:386} (note:Default): Netatalk AFP server starting
Jan 24 19:06:24.843728 cnid_metad[8653] {cnid_metad.c:510} (note:AFPDaemon): CNID Server listening on localhost:4700
Jan 24 19:06:24.844380 netatalk[8651] {afp_avahi.c:80} (info:AFPDaemon): Registering volume 'TimeMachine' with UUID: '<some UUID>' for TimeMachine
Jan 24 19:06:24.844434 netatalk[8651] {afp_avahi.c:94} (info:AFPDaemon): hostname: <hostname>
Jan 24 19:06:24.844451 netatalk[8651] {afp_avahi.c:106} (info:AFPDaemon): Registering server '<hostname>' with Bonjour
Jan 24 19:06:24.845279 netatalk[8651] {afp_avahi.c:302} (info:AFPDaemon): Successfully started avahi loop.
Jan 24 19:06:24.845319 netatalk[8651] {netatalk.c:456} (note:Default): Registered with Zeroconf
Jan 24 19:06:24.845356 netatalk[8651] {netatalk.c:218} (info:Default): child[8652]: exited 1
Jan 24 19:06:25.843370 netatalk[8651] {netatalk.c:254} (note:AFPDaemon): Restarting 'afpd' (restarts: 1)
Jan 24 19:06:25.845151 netatalk[8651] {netatalk.c:218} (info:Default): child[8654]: exited 1
Jan 24 19:06:26.842367 netatalk[8651] {netatalk.c:254} (note:AFPDaemon): Restarting 'afpd' (restarts: 2)
Jan 24 19:06:26.844195 netatalk[8651] {netatalk.c:218} (info:Default): child[8655]: exited 1
Jan 24 19:06:27.846723 netatalk[8651] {netatalk.c:254} (note:AFPDaemon): Restarting 'afpd' (restarts: 3)
  ...

Ничего в /var/log/messages либо. Отдельно от 10.1 апгрейд, на сервере ничего не менял; он просто сидел и делал свое дело.

Кто-нибудь может мне посоветовать, как найти причину проблемы?

Просто очень дикий выстрел в темноте; В документации netatalk сказано следующее:

Протокол AFP в основном относится к файлам и каталогам по идентификатору, а не по имени. Netatalk нужен способ постоянного хранения этих идентификаторов, для этого доступно несколько различных механизмов CNID. Базы данных CNID по умолчанию расположены в каталоге @ localstatedir @ / netatalk / CNID / (volumename) /. AppleDB /.

cdb

"Concurrent database", backend is based on Oracle Berkley DB. With this backend several afpd daemons access the CNID database directly.

Блокировка Berkeley DB используется для синхронизации доступа, если для тома активен более одного процесса afpd. Недостатком является то, что сбой одного процесса afpd может привести к повреждению базы данных.

BerkeleyDB укусил меня так много раз в прошлом (с другим программным обеспечением, я не использовал netatalk), что я думаю, что это может снова стать проблемой. Если вы используете бэкэнд CDB и есть файлы BDB (*.bdb или около того) присутствует в этом @localstatedir@.../.AppleDB/ каталог, вы можете попробовать сделать резервную копию этих файлов где-нибудь, а затем запустить db_repair команда там. Имя команды может быть db4.9_repair или аналогичный, отражающий текущую версию BerkeleyDB.