FreeBSD: daemon netatalk3 continua reiniciando

1

Eu configurei um daemon netatalk3 / afpd em meu servidor FreeBSD cerca de meio ano atrás e usei-o como TimeMachine em rede para o meu MacBook Pro. Muito fogo e esqueça.

Em seguida, no início deste mês, fiz o upgrade da versão 3.1.2,1 para 3.1.7,1 .
Do que eu posso reconstruir, isso aconteceu como parte do FreeBSD 10.0 - > 10.1 upgrade.

Demorei um pouco para perceber que o daemon não está mais funcionando; na verdade, o MacBook começou a reclamar sobre os backups perdidos depois de um tempo.

Examinando o problema, parece que o daemon netatalk3 continua reiniciando, mas apesar de eu ter aumentado o nível de log em /usr/local/etc/afp.conf usando log level = default:debug , parece não haver nenhuma dica sobre o motivo da reinicialização é:

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)
  ...

Nada em /var/log/messages também. Além do 10.1 upgrade, não mudei nada no servidor; está apenas sentado lá fazendo a coisa dele.

Alguém tem algum conselho para mim sobre como encontrar a causa do problema?

    
por ssc 24.01.2015 / 19:51

1 resposta

1

Apenas um tiro muito selvagem no escuro; documentação do netatalk diz isso:

The AFP protocol mostly refers to files and directories by ID and not by name. Netatalk needs a way to store these ID's in a persistent way, to achieve this several different CNID backends are available. The CNID Databases are by default located in the @localstatedir@/netatalk/CNID/(volumename)/.AppleDB/ directory.

cdb

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

Berkeley DB locking is used to synchronize access, if more than one afpd process is active for a volume. The drawback is, that the crash of a single afpd process might corrupt the database.

O BerkeleyDB já me mordeu tantas vezes no passado (com o outro software, eu não usei o netatalk) que eu acho que pode ser o problema, mais uma vez. Se você estiver usando o backend do CDB e houver arquivos BDB ( *.bdb ou mais) presentes no diretório @localstatedir@.../.AppleDB/ , tente fazer backup desses arquivos em algum lugar e, em seguida, execute o comando db_repair lá. O nome do comando pode ser db4.9_repair ou similar, refletindo a versão atual do BerkeleyDB.

    
por 29.01.2015 / 13:29