Netatalk Paket (TimeMachine): Devs gesucht / Looking for Devs

svoop

Neuer User
Mitglied seit
1 Jul 2009
Beiträge
79
Punkte für Reaktionen
0
Punkte
0
Hallo

(English speakers see below.)

Ich habe vor einiger Zeit TimeMachine via Samba eingerichtet, was zwar funktioniert, aber nur bis man das erste Mal ein komplettes Restore braucht oder die Platte voll ist. Kurz gesagt: TimeMachine via Samba ist viel zu unzuverlässig.

Besser geeignet ist Netatalk-2.0.5, das explizit Support für TimeMachine bietet. Ich habe daher angefangen, Netatalk als Freetz Paket zu bauen. Leider bin ich nicht wirklich ein gcc/make Crack und stecke da im Moment fest.

Daher der Aufruf: Wer kann und möchte mitarbeiten? Schreibe einfach eine Reply auf diese Post, falls du daran interessiert bist.

Ich habe ein Git Repo eingerichtet mit dem derzeitigen Stand der Dinge. Wenn du Github kennst: Repo forken, installieren (siehe README im Repo), committen und dann einen Pull Request absetzen. Wenn du Github *nicht* kennst und mitmachen möchtest, helfe ich gerne weiter.

http://github.com/svoop/freetz-netatalk

--- --- ---

I'm working on a packet to bring Netatalk to Freetz, but as I'm no gcc/make crack, I'm stuck at the moment. If you can and would like to join the effort, please reply to this post to let me know.
 
Hallo

ich interessiere mich wohl dafür. Habe mal etwas mit netatalk rumgespielt. Allerdings bisher nur auf Linux Kisten. Ich hatte auch mal Gedanken daran netatalk auf der Fritzbox zum laufen zu bringen.


Gruß Kuchenhorst
 
Du findest den Stand der Dinge auf Github (siehe oben) und kannst das Repo forken, weiterbauen, dann einen pull request auslösen.

Netatalk kompiliert und läuft soweit, ich bin an den Configsachen. Allerdings habe ich im Moment gerade nicht so viel Zeit dafür, aber das ändert sich in ein, zwei Wochen wahrscheinlich wieder.
 
Me too...

Steige gerade ins Fritz!Box modding ein und möchte ebenfalls AFP für Time Machine nutzten. Werde mir heute abend mal Dein Projekt anschauen. Vielen Dank schon mal vorab für die Mühe.

Gruß Skytunes
 
Hallo,

sobald Ihr was ordentlich Lauffähiges habt, bitte eine Nachricht hier hinterlassen. Dann können wir schauen, ob's in Freetz aufgenommen wird.

Beste Grüße,
Whoopie
 
Hallo,

@skytunes

Berichte mal bitte ob es bei Dir durchläuft. Bei mir bricht der Übersetzungsvorgang immer ab.

Gruß Kuchenhorst
 
Ich war die letzten Monate nomadisch (im Wohnmobil) unterwegs, aber ab Dienstag wieder für ein Weilchen fix. Ab dann kann ich auch wieder an diesem Teil mitschrauben. Zu zweit oder dritt kriegen wir es sicher innert nützlicher Frist hin.

Mein letzter Stand war, dass ich es auf meiner Gentoo-Box kompilieren kann, aber die Scripts für das GUI im Backend noch nicht fertig sind.

Bitte direkte Post an mich auf Github schicken, Danke!
 
Bin ebenfalls hochinteressiert wegen Verwendung mit TimeMachine.
Compilierung machte bei mir Probleme mit libgcrypt (CAST5 fehlte, musste entsprechend in der Paketkonfiguration des FREEZ-Masters geändert werden) und fehlendem Pfad zur openSSL Bibliothek im netatalk-Patch (Fix habe ich bereits auf github gestellt).

Compilat ist bisher noch nicht getestet.
 
Hallo allerseits,

ich habe durch eine Änderung an netatalk.mk die Abhängigkeit von uams_dhx_passwd durch uams_passwd ersetzt (oder so ähnlich). Damit konnte ich es wenigstens durchkompilieren.

Ich bin letztlich auf dem Stand von svoop, da die Konfigurationsskripten (noch) nicht funktionieren. Da ich aber gerade erst mit Freetz angefangen habe, muss ich erst mal verstehen lernen, wie die Configfiles generiert werden.

Melde mich wieder, sobald ich was neues habe.
 
Hallo,

Bei mir hat er die uams_dhx_passwd verlangt. Habe das dann mal von Hand geändert, seit den läuft es durch. Habe das Image soweit auch auf der Box. Leider gibt es da noch einige Fehler bzw die Config muß irgendwie angepasst werden. Muß mich da leider auch erst reinfummeln.

Nachtrag 1:

Läuft jetzt auch so durch. Danke Svoop und dg1kjd.

Nachtrag 2:

Macht es eigentlich Sinn das Ganze mit avahi im Netz bereitzustellen? Hatte das mal vor längerer Zeit mit Ubuntu bzw chroot auf der Fritzbox laufen gehabt. Wie sieht es mit hfs oder hfs+ aus? Normalerweise sollte zwar das Dateisystem egal sein, meine aber mal gelesen zu haben, daß über das Dateisystem Timemachine die Integrität der Daten prüft.

Gruß Kuchenhorst
 
Zuletzt bearbeitet:
Macht es eigentlich Sinn das Ganze mit avahi im Netz bereitzustellen?
Gruß Kuchenhorst

Avahi macht definitiv Sinn. Dann muss die AFP-Share nicht schon gemounted sein um als Time Machine Laufwerk konfiguriert werden zu können.

Wie sieht es mit hfs oder hfs+ aus? Normalerweise sollte zwar das Dateisystem egal sein, meine aber mal gelesen zu haben, daß über das Dateisystem Timemachine die Integrität der Daten prüft.

Das sollte IMO keinen Unterschied machen, da Time Machine ein Sparse Bundle als 'disk image' file auf der AFP-Share anlegt.

Cheers,
M
 
Hallo,

Das mit avahi habe ich mir schon gedacht, hatte mir damals bei meiner Bastellösung einiges vereinfacht. Das wäre dann wohl die nächste Baustelle.:)

Das mit den Sparse Bundle ist insofern praktisch (hatte ich auch bei der Bastellösung), da man dann das Dateisystem vernachlässigen kann, das stimmt wohl. Habe irgendwie das mit dem hfs und hfs+ eh nicht sauber ans laufen bekommen.

Gruß Kuchenhorst
 
Netatalk funktioniert mit Gastlogin und "tdb" Backend, das aber unbrauchbar ist, wenn ein Volume mehr als einmal gemountet wird.

Das derzeit grösste Problem ist daher die Frage, warum das "cdb" (Berkeley DB) Backend nicht funktioniert. Es kompiliert okay, die Binaries funktionieren. Aber wenn afpd mit cnid_dbd kommuniziert, bleibt der Prozess hängen, es wird nichts geschrieben, Timeout. Die Permissions sind nicht schuld.

Ich habe die nächsten Tage nicht so viel Zeit, daher der Aufruf an alle die können und wollen: Installiert Netatalk und helft mit, das Problem zu knacken. Mehr auf:

http://github.com/svoop/freetz-netatalk
 
CNID Problem...

Bin dran. Scheint ein Problem mit der Berkeley-DB beim rebuilden der CNID-Datenbank zu sein. Der open-Aufruf in die DB-Lib hängt, damit hängt der ganze cnid_dbd-Prozess.
Ich melde mich sobald ich das debugged habe (heute).

Sorry uebrigens fürs nicht-erreichbar-sein. Bin voll im Stress momentan.

--j
 
strace...

Ich habe geschafft einen strace des cnid_dbd hinzubekommen:

Code:
root@fritz:/var/mod/root# strace -s 200 -p 4193
Process 4193 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>) = 0
socket(PF_FILE, SOCK_DGRAM, 0)          = 4
connect(4, {sa_family=AF_FILE, path="/dev/log"}, 10) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2bc74b0}, {SIG_DFL, [], SA_NOCLDSTOP}, 16) = 0
time([1291486539])                      = 1291486539
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00\n", 68) = 45
read(7, "", 23)                         = 0
close(7)                                = 0
getpid()                                = 4193
write(4, "<29>Dec  4 19:15:39 cnid_dbd[4193]: Set syslog logging to level: LOG_DEBUG\0", 75) = 75
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_NOCLDSTOP}, NULL, 16) = 0
chdir("/tmp/cnid_db_1/.AppleDB")        = 0
stat64(".", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
getuid()                                = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2bc74b0}, {SIG_DFL, [], SA_NOCLDSTOP}, 16) = 0
time([1291486539])                      = 1291486539
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00\n", 68) = 45
read(7, "", 23)                         = 0
close(7)                                = 0
getpid()                                = 4193
write(4, "<30>Dec  4 19:15:39 cnid_dbd[4193]: Setting uid/gid to 0/0\0", 59) = 59
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_NOCLDSTOP}, NULL, 16) = 0
setgid(0)                               = 0
setuid(0)                               = 0
open("lock", O_RDWR|O_CREAT|O_LARGEFILE, 0644) = 7
fcntl64(7, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=2, len=0}) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2bc74b0}, {SIG_DFL, [RT_67 RT_69 RT_70 RT_71 RT_72 RT_73 RT_75 RT_78 RT_80 RT_87], SA_NOCLDSTOP}, 16) = 0
time([1291486539])                      = 1291486539
open("/etc/TZ", O_RDONLY)               = 9
read(9, "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00\n", 68) = 45
read(9, "", 23)                         = 0
close(9)                                = 0
getpid()                                = 4193
write(4, "<30>Dec  4 19:15:39 cnid_dbd[4193]: Startup, DB dir /tmp/cnid_db_1/.AppleDB\0", 76) = 76
rt_sigaction(SIGPIPE, {SIG_DFL, [RT_67 RT_69 RT_70 RT_71 RT_72 RT_73 RT_75 RT_78 RT_80 RT_87], SA_NOCLDSTOP}, NULL, 16) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], 0x405760 /* SA_??? */}, NULL, 16) = 0
rt_sigaction(SIGTERM, {SIG_DFL, [], 0x405760 /* SA_??? */}, NULL, 16) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_NOCLDSTOP}, NULL, 16) = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM], NULL, 16) = 0
open("/tmp/cnid_db_1/.AppleDB/db_param", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open(".", O_RDONLY|O_LARGEFILE)         = 9
chdir(".")                              = 0
stat64("cnid.db", 0x7fb2ea40)           = -1 ENOENT (No such file or directory)
fchdir(9)                               = 0
close(9)                                = 0
getpid()                                = 4193
open(".", O_RDONLY|O_LARGEFILE)         = 9
chdir(".")                              = 0
open("db_errlog", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0666) = 10
ioctl(10, TIOCNXCL, 0x7fb2e9a8)         = -1 ENOTTY (Inappropriate ioctl for device)
brk(0x423000)                           = 0x423000
fchdir(9)                               = 0
close(9)                                = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2bc74b0}, {SIG_DFL, [], SA_NOCLDSTOP}, 16) = 0
time([1291486539])                      = 1291486539
open("/etc/TZ", O_RDONLY)               = 9
read(9, "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00\n", 68) = 45
read(9, "", 23)                         = 0
close(9)                                = 0
getpid()                                = 4193
write(4, "<31>Dec  4 19:15:39 cnid_dbd[4193]: Running recovery\0", 53) = 53
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_NOCLDSTOP}, NULL, 16) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2bc74b0}, {SIG_DFL, [RT_67 RT_69 RT_70 RT_71 RT_72 RT_73 RT_75 RT_78 RT_80 RT_87], SA_NOCLDSTOP}, 16) = 0
time([1291486539])                      = 1291486539
open("/etc/TZ", O_RDONLY)               = 9
read(9, "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00\n", 68) = 45
read(9, "", 23)                         = 0
close(9)                                = 0
getpid()                                = 4193
write(4, "<31>Dec  4 19:15:39 cnid_dbd[4193]: DB set to VERBOSE.\0", 55) = 55
rt_sigaction(SIGPIPE, {SIG_DFL, [RT_67 RT_69 RT_70 RT_71 RT_72 RT_73 RT_75 RT_78 RT_80 RT_87], SA_NOCLDSTOP}, NULL, 16) = 0
open("./DB_CONFIG", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
stat64("/var/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=0, ...}) = 0
open("./__db.001", O_RDWR|O_LARGEFILE)  = -1 ENOENT (No such file or directory)
open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 9
fstat(9, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
brk(0x424000)                           = 0x424000
getdents64(9, /* 4 entries */, 4096)    = 104
stat64("./.", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [INT TERM CHLD RT_0], 16) = 0
rt_sigsuspend([INT TERM CHLD] <unfinished ...>
Process 4193 detached

Falls jemand was ins Auge fällt bitte reply ->

--j
 
ltrace...

Hier noch der zugehörige ltrace...

Code:
root@fritz:/var/mod/root# ltrace -p 4235
strdup("default LOG_DEBUG " <unfinished ...>
strlen("default LOG_DEBUG ")                                                                                                                     = 18
<... strdup resumed> )                                                                                                                           = 0x00420eb0
strdup("default LOG_DEBUG " <unfinished ...>
strlen("default LOG_DEBUG ")                                                                                                                     = 18
<... strdup resumed> )                                                                                                                           = 0x00420ec8
strpbrk(0x420ec8, 0x40b82c, 3, 0x420ec3, 0x2aac5010)                                                                                             = 0x420ecf
strpbrk(0x420ed0, 0x40b82c, 32, 0x420ec3, 0x2aac5010)                                                                                            = 0x420ed9
strcasecmp("default", "Default")                                                                                                                 = 0
strcasecmp("LOG_DEBUG", "LOG_SEVERE")                                                                                                            = -15
strcasecmp("LOG_DEBUG", "LOG_ERROR")                                                                                                             = -1
strcasecmp("LOG_DEBUG", "LOG_WARN")                                                                                                              = -19
strcasecmp("LOG_DEBUG", "LOG_NOTE")                                                                                                              = -10
strcasecmp("LOG_DEBUG", "LOG_INFO")                                                                                                              = -5
strcasecmp("LOG_DEBUG", "LOG_DEBUG")                                                                                                             = 0
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 38
openlog("cnid_dbd", 9, 24 <unfinished ...>
strncpy(0x2ac1d43a, "/dev/log", 14)                                                                                                              = 0x2ac1d43a
strlen("/dev/log")                                                                                                                               = 8
<... openlog resumed> )                                                                                                                          = <void>
syslog(5, "%s", "Set syslog logging to level: LOG"... <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
localtime(0x7f84c168 <unfinished ...>
strlen("TZ")                                                                                                                                     = 2
close(7)                                                                                                                                         = 0
strcmp("CET-1CEST-2,M3.5.0/02:00:00,M10."..., "")                                                                                                = 67
strncpy(0x2ac1d478, "CET-1CEST-2,M3.5.0/02:00:00,M10."..., 68)                                                                                   = 0x2ac1d478
strcmp("UTC", "CET")                                                                                                                             = 18
strcmp("???", "CET")                                                                                                                             = -4
<... localtime resumed> )                                                                                                                        = 0x2ac21d3c
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 20
strlen("cnid_dbd")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 6
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 38
write(4, "<29>Dec  4 19:25:11 cnid_dbd[423"..., 75)                                                                                              = 75
<... syslog resumed> )                                                                                                                           = <void>
free(0x00420ec8)                                                                                                                                 = <void>
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 1701585007, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 0x656c206f) = 22
syslog(6, "%s", "Setting uid/gid to 0/0" <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
localtime(0x7f84c1b8 <unfinished ...>
strlen("TZ")                                                                                                                                     = 2
close(7)                                                                                                                                         = 0
strcmp("CET-1CEST-2,M3.5.0/02:00:00,M10."..., "CET-1CEST-2,M3.5.0/02:00:00,M10."...)                                                             = 0
strcmp("UTC", "CET")                                                                                                                             = 18
strcmp("???", "CET")                                                                                                                             = -4
strcmp("CET", "CET")                                                                                                                             = 0
<... localtime resumed> )                                                                                                                        = 0x2ac21d3c
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 20
strlen("cnid_dbd")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 6
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 22
write(4, "<30>Dec  4 19:25:11 cnid_dbd[423"..., 59)                                                                                              = 59
<... syslog resumed> )                                                                                                                           = <void>
open64("lock", 258, 0644)                                                                                                                        = 7
fcntl64(7, 34, 0x7f84cbe0, 0, 0)                                                                                                                 = 0
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 1701585007, "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 0x656c206f) = 39
syslog(6, "%s", "Startup, DB dir /tmp/cnid_db_1/."... <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
localtime(0x7f84c1b8 <unfinished ...>
strlen("TZ")                                                                                                                                     = 2
close(9)                                                                                                                                         = 0
strcmp("CET-1CEST-2,M3.5.0/02:00:00,M10."..., "CET-1CEST-2,M3.5.0/02:00:00,M10."...)                                                             = 0
strcmp("UTC", "CET")                                                                                                                             = 18
strcmp("???", "CET")                                                                                                                             = -4
strcmp("CET", "CET")                                                                                                                             = 0
<... localtime resumed> )                                                                                                                        = 0x2ac21d3c
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 20
strlen("cnid_dbd")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 6
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 39
write(4, "<30>Dec  4 19:25:11 cnid_dbd[423"..., 76)                                                                                              = 76
<... syslog resumed> )                                                                                                                           = <void>
strlen("/tmp/cnid_db_1/.AppleDB")                                                                                                                = 23
strlen("usock")                                                                                                                                  = 5
strlen("/tmp/cnid_db_1/.AppleDB")                                                                                                                = 23
strlen("db_param")                                                                                                                               = 8
__errno_location()                                                                                                                               = 0x2ac1d0a0
free(0x00420ef0)                                                                                                                                 = <void>
__errno_location()                                                                                                                               = 0x2ac1d0a0
strdup("." <unfinished ...>
strlen(".")                                                                                                                                      = 1
<... strdup resumed> )                                                                                                                           = 0x00420f48
strdup("cnid2.db" <unfinished ...>
strlen("cnid2.db")                                                                                                                               = 8
<... strdup resumed> )                                                                                                                           = 0x00420f58
open64(".", 0, 05603)                                                                                                                            = 9
__errno_location()                                                                                                                               = 0x2ac1d0a0
__errno_location()                                                                                                                               = 0x2ac1d0a0
close(9)                                                                                                                                         = 0
open64(".", 0, 00)                                                                                                                               = 9
__errno_location()                                                                                                                               = 0x2ac1d0a0
__errno_location()                                                                                                                               = 0x2ac1d0a0
close(9)                                                                                                                                         = 0
vsnprintf(NULL, 0, NULL, NULL)                                                                                                                   = 16
syslog(7, "%s", "Running recovery" <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
localtime(0x7f84c0c0 <unfinished ...>
strlen("TZ")                                                                                                                                     = 2
close(9)                                                                                                                                         = 0
strcmp("CET-1CEST-2,M3.5.0/02:00:00,M10."..., "CET-1CEST-2,M3.5.0/02:00:00,M10."...)                                                             = 0
strcmp("UTC", "CET")                                                                                                                             = 18
strcmp("???", "CET")                                                                                                                             = -4
strcmp("CET", "CET")                                                                                                                             = 0
<... localtime resumed> )                                                                                                                        = 0x2ac21d3c
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 20
strlen("cnid_dbd")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 6
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 16
write(4, "<31>Dec  4 19:25:12 cnid_dbd[423"..., 53)                                                                                              = 53
<... syslog resumed> )                                                                                                                           = <void>
vsnprintf(NULL, 0, NULL, NULL)                                                                                                                   = 18
syslog(7, "%s", "DB set to VERBOSE." <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
localtime(0x7f84c0c0 <unfinished ...>
strlen("TZ")                                                                                                                                     = 2
close(9)                                                                                                                                         = 0
strcmp("CET-1CEST-2,M3.5.0/02:00:00,M10."..., "CET-1CEST-2,M3.5.0/02:00:00,M10."...)                                                             = 0
strcmp("UTC", "CET")                                                                                                                             = 18
strcmp("???", "CET")                                                                                                                             = -4
strcmp("CET", "CET")                                                                                                                             = 0
<... localtime resumed> )                                                                                                                        = 0x2ac21d3c
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 20
strlen("cnid_dbd")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 6
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 18
write(4, "<31>Dec  4 19:25:12 cnid_dbd[423"..., 55)                                                                                              = 55
<... syslog resumed> )                                                                                                                           = <void>
strlen(".")                                                                                                                                      = 1
strlen(".")                                                                                                                                      = 1
strlen("DB_CONFIG")                                                                                                                              = 9
strlen(".")                                                                                                                                      = 1
strlen("DB_CONFIG")                                                                                                                              = 9
__errno_location()                                                                                                                               = 0x2ac1d0a0
free(0x00422468)                                                                                                                                 = <void>
free(0x00422458)                                                                                                                                 = <void>
strlen("/var/tmp")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> "h\017B", 4330304, "h\017B", 0x00421340)                                                                                 = 8
strlen(".")                                                                                                                                      = 1
strlen("__db.001")                                                                                                                               = 8
strlen(".")                                                                                                                                      = 1
strlen("__db.001")                                                                                                                               = 8
strlen("./__db.001")                                                                                                                             = 10
open64("./__db.001", 2, 00 <unfinished ...>
__errno_location()                                                                                                                               = 0x2ac1d0a0
<... open64 resumed> )                                                                                                                           = -1
__errno_location()                                                                                                                               = 0x2ac1d0a0
free(0x004224d8)                                                                                                                                 = <void>
free(0x004224a8)                                                                                                                                 = <void>
free(0x00422498)                                                                                                                                 = <void>
free(0x00422468)                                                                                                                                 = <void>
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> "h\017B", 4330304, "h\017B", 0x00421340)                                                                                 = 8
strlen(".")                                                                                                                                      = 1
strlen("__db.001")                                                                                                                               = 8
strlen(".")                                                                                                                                      = 1
strlen("__db.001")                                                                                                                               = 8
vsnprintf( <unfinished ...>
strlen("")                                                                                                                                       = 0
strlen("")                                                                                                                                       = 0
<... vsnprintf resumed> NULL, 0, NULL, NULL)                                                                                                     = 3

root@fritz:/var/mod/root#

--j
 
Mit C kenne ich mich viel zu wenig aus, um in den Traces etwas zu sehen.

Aber ich habe gerade committed, dass auch das CDB Backend kompiliert wird. Das ist DBD, aber ohne Daemon, afpd schreibt also direkt die Berkeley Db. Da ist es vielleicht einfacher, das Problem zu finden - zumal die Symptome dieselben sind.

Da DBD das Standardbackend ist, muss man im AppleVolumes.default folgendes mitgeben... cnidscheme:cdb

Das Log ist dann allerdings etwas ausführlicher, aber nicht unbedingt hilfreicher:

Code:
afpd[2836]: Setting uid/gid to 0/0
afpd[2836]: CNID DB initialized using Berkeley DB 4.8.30: (April  9, 2010)
afpd[2836]: cnid_open: dbenv->open (rw) of /var/media/ftp/uStor01/.AppleDB failed: DB_RUNRECOVERY: Fatal error, run database recovery
afpd[2836]: cnid_open: CATASTROPHIC ERROR opening database environment /var/media/ftp/uStor01/.AppleDB.  Run db_recovery -c immediately
afpd[2836]: Cannot open CNID db at [/var/media/ftp/uStor01].
afpd[2836]: Can't open volume "/var/media/ftp/uStor01" CNID backend "cdb" 
afpd[2836]: Reopen volume /var/media/ftp/uStor01 using in memory temporary CNID DB.

Und db_recovery gehört nicht zu Netatalk.
 
Die BDB ist das Problem...

Hi Sven,

ich vermute die Ursache ist dieselbe, das andere Frontend benutzt doch auch die Berkeley-DB?

Ich habe den Bug mittlerweile etwas eingekreist, beim erstellen des Environment (dbif.c in netatalk/etc/cnid) via BDB Aufruf geht was schief. Es scheint als erkennt die Datenbank beim open automatisch ob die DB schon existiert. Wenn nicht wird sie erstellt.
Dazu wird die alte erstmal fileweise entfernt... ;) Und zwar nonblockingmässig mit FD_SET, select() etc. Dabei geht was schief, das Signal zum Aufwecken kommt nicht.

Mal sehn.

--j
 
ich vermute die Ursache ist dieselbe, das andere Frontend benutzt doch auch die Berkeley-DB?

Ja, ist beides Berkeley DB. Viel Glück beim Debuggen, ich verstehe zwar nicht viel mehr als Bahnhof, aber egal, ist trotzdem interessant :)

Merssi, -sven
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.