Erstellt vor 3 Monaten

Zuletzt geändert vor 3 Monaten

#2908 new defect

Race condition beim Hinzufügen von ftpd und smbd zur inetd.conf

Erstellt von: f_666 Verantwortlicher:
Priorität: normal Meilenstein: freetz-next
Komponente: patches Version: devel
Stichworte: freetzmount Beobachter:
Product Id: Firmware Version:

Beschreibung

Ich habe eine 7490 mit (dauerhaft) angeschlossener Festplatte und aktiviertem FreetzMount (06.83, aktueller Trunk). Beim Hochfahren der FritzBox wird weder der ftpd noch der smbd in die inetd.conf eingetragen. FTP und SMB ist in der Oberfläche aktiviert.
Der zeitliche Ablauf diverser Skripte ist wiefolgt (ich habe großflächig Debugausgaben in diverse Skripte eingefügt):

01:00:51 libmodmount.sh Partition XXX (/dev/sda) was mounted successfully
01:00:51 libmodmount.sh ruft inetdctl enable ftpd auf
01:00:51 ---> /bin/inetdctl prüft [ -d /mod/etc/default.ftpd ], welches noch nicht existiert und beendet sich
01:00:52 libmodmount.sh ruft samba_control reconfig auf
01:00:54 ---> samba_control ruft inetdctl enable smbd auf
01:00:54 ---> ---> /bin/inetdctl prüft [ -d /mod/etc/default.smbd ], welches noch nicht existiert und beendet sich
01:01:01 ? irgendjemand ruft inetdctl enable ftpd auf, wieder ohne Erfolg
01:01:03 ? irgendjemand ruft samba_control reconfig_pw auf
01:01:04 ---> samba_control ruft inetdctl enable smbd auf, wieder ohne Erfolg
01:01:07 ? irgendjemand ruft rc.ftpd (ohne Parameter) auf
einige Zeit später: /mod/etc/default.ftpd und /mod/etc/default.smbd sind da, erst ab jetzt kann libmodmount.sh überhaupt ftpd und smbd beim inetd registrieren

Vermutlich habe ich auf einer 7270 das gleiche Problem, wäre die Reserve zum Testen.

Hat jemand, der sich mit dem Startprozess auskennt, eine Idee, wie man das vernünftig lösen könnte?
Z.B. in der libmodmount.sh bzw. samba_control sicherstellen, dass die /mod/etc/default.$2 Verzeichnisse angelegt werden?

Anhänge (1)

freetzmount_race_fix.diff (2.2 KB) - hinzugefügt von f_666 vor 3 Monaten.
Vorschlag um das Thema zu lösen

Alle Anhänge herunterladen als: .zip

Änderungshistorie (2)

Geändert vor 3 Monaten durch f_666

Vorschlag um das Thema zu lösen

comment:1 Geändert vor 3 Monaten durch f_666

Anbei einen Vorschlag um das Thema zu lösen:

inetdctl legt eine Datei unter /tmp an, falls das Aktivieren von Diensten im inetd gewünscht wurde, diese aber noch nicht möglich waren, da die Konfigurationen unter /mod/etc/default.XXX fehlten.

Später prüfen rc.smbd und rc.ftpd beim Starten, ob die Dateien da sind und aktiveren dann ihre eigenen Dienste im inetd.

Dieser Lösungsweg erschien mir am einfachsten, da inetdctl an zu vielen (verschachtelten) anderen Stellen aufgerufen wird.

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.