CentOS: Netatalk 2.2.0: INTERNAL ERROR Signal 11

Переехав на своём основном сервере на CentOS я столкнулся с такой неприятной проблемой, что на одной из шар я никак не мог сохранить файлы. В частности это была директория веб-сервера, где у меня лежит в том числе и мой проект TorrentMonitor, правки в который я вношу постоянно. Ну и естественно этот факт не мог меня не напрягать. Но выход из ситуации был найден.

Лог пестрил вот такими вот красивыми записями:
Окт 23 13:00:54.950789 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:00:54.950822 afpd[8851] {ea.c:1152} (E:AFPDaemon): list_eas: error calling ea_open for file: config.php
Окт 23 13:00:54.951571 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:00:54.951593 afpd[8851] {ea.c:1152} (E:AFPDaemon): list_eas: error calling ea_open for file: config.php
Окт 23 13:00:55.391208 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:00:55.391228 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php
Окт 23 13:00:56.515909 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:00:56.515932 afpd[8851] {ea.c:1152} (E:AFPDaemon): list_eas: error calling ea_open for file: config.php
Окт 23 13:00:56.516855 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:00:56.516880 afpd[8851] {ea.c:1152} (E:AFPDaemon): list_eas: error calling ea_open for file: config.php
Окт 23 13:01:03.435142 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:01:03.435185 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php
Окт 23 13:01:33.434724 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:01:33.434772 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php
Окт 23 13:02:03.462347 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:02:03.462415 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php
Окт 23 13:02:04.004253 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:02:04.004278 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php
Окт 23 13:02:33.947712 afpd[8851] {ea.c:722} (E:AFPDaemon): ea_open('.AppleDouble/config.php::EA'): bogus EA header file
Окт 23 13:02:33.947754 afpd[8851] {ea.c:1002} (E:AFPDaemon): get_easize: error calling ea_open for file: config.php

А порой afp просто крэшился:
Окт 23 13:00:48.892432 afpd[8837] {fault.c:122} (S:Default): ===============================================================
Окт 23 13:00:48.892451 afpd[8837] {fault.c:123} (S:Default): INTERNAL ERROR: Signal 11 in pid 8837 (2.2.0)
Окт 23 13:00:48.892456 afpd[8837] {fault.c:124} (S:Default): ===============================================================
Окт 23 13:00:48.893793 afpd[8837] {fault.c:96} (S:Default): BACKTRACE: 15 stack frames:
Окт 23 13:00:48.893806 afpd[8837] {fault.c:102} (S:Default): #0 /usr/sbin/afpd(netatalk_panic+0x1f) [0x4512cf]
Окт 23 13:00:48.893811 afpd[8837] {fault.c:102} (S:Default): #1 /usr/sbin/afpd() [0x4513cc]
Окт 23 13:00:48.893815 afpd[8837] {fault.c:102} (S:Default): #2 /lib64/libc.so.6(+0x326b0) [0x7f36c11626b0]
Окт 23 13:00:48.893819 afpd[8837] {fault.c:102} (S:Default): #3 /lib64/libc.so.6(+0x1282aa) [0x7f36c12582aa]
Окт 23 13:00:48.893823 afpd[8837] {fault.c:102} (S:Default): #4 /usr/sbin/afpd() [0x461f5b]
Окт 23 13:00:48.893827 afpd[8837] {fault.c:102} (S:Default): #5 /usr/sbin/afpd(ea_renamefile+0x146) [0x464f86]
Окт 23 13:00:48.893830 afpd[8837] {fault.c:102} (S:Default): #6 /usr/sbin/afpd() [0x45c566]
Окт 23 13:00:48.893834 afpd[8837] {fault.c:102} (S:Default): #7 /usr/sbin/afpd(renamefile+0x72) [0x422ea2]
Окт 23 13:00:48.893838 afpd[8837] {fault.c:102} (S:Default): #8 /usr/sbin/afpd() [0x426857]
Окт 23 13:00:48.893842 afpd[8837] {fault.c:102} (S:Default): #9 /usr/sbin/afpd(afp_moveandrename+0x252) [0x426ce2]
Окт 23 13:00:48.893846 afpd[8837] {fault.c:102} (S:Default): #10 /usr/sbin/afpd(afp_over_dsi+0x4f9) [0x410699]
Окт 23 13:00:48.893850 afpd[8837] {fault.c:102} (S:Default): #11 /usr/sbin/afpd() [0x40f277]
Окт 23 13:00:48.893855 afpd[8837] {fault.c:102} (S:Default): #12 /usr/sbin/afpd(main+0x55b) [0x42a92b]
Окт 23 13:00:48.893860 afpd[8837] {fault.c:102} (S:Default): #13 /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f36c114ed5d]
Окт 23 13:00:48.893865 afpd[8837] {fault.c:102} (S:Default): #14 /usr/sbin/afpd() [0x40e539]

Конечно кто то может сказать что версия 2.2.0 давным-давно не актуальна, но что поделать, если в репах свежих версий нет, а ставить 3-ю версию в ручную лично мне как то не очень хочется. Вообще я не сторонник собирать что то руками, когда есть пакетный менеджер. Уж в крайнем случае подключить альтернативный репозиторий, в котором можно найти актуальную версию. Но для netatalk таких реп я найти не смог.

Проблема решилась после эксперимента с методами аутентификации в netatalk. В частности в своём мануале по настройке AFP под Gentoo, я использовал для авторизации 2 метода:
uams_dhx.so - Allow Diffie-Hellman eXchange (DHX) for authentication.
и
uams_dhx2.so - Allow Diffie-Hellman eXchange 2 (DHX2) for authentication.

И проблема крылась как раз-таки во втором из них. Уж не знаю что там накосячили разработчики, но методом научного тыка было установлено, если заменить uams_dhx2.so на uams_dhx2_passwd.so, а в документации указаны на выбор один из этих модулей для DHX2, то проблема с сохранением данных пропадает. Конечно в логе остаётся какой то мусор:
Окт 23 13:04:02.857207 afpd[8913] {ea_sys.c:388} (E:AFPDaemon): sys_remove_ea(config.php/com.apple.document.draft#PS): error: Нет доступных данных
Окт 23 13:04:08.076925 afpd[8913] {ea_sys.c:388} (E:AFPDaemon): sys_remove_ea(config.php/com.apple.document.draft#PS): error: Нет доступных данных
Окт 23 13:04:21.988429 afpd[8913] {ea_sys.c:388} (E:AFPDaemon): sys_remove_ea(System.class.php/com.apple.document.draft#PS): error: Нет доступных данных

но я не заметил что бы это как то отразилось на работе системы в целом или netatalk в частности.

Добавить комментарий