task_error bei softupdate
Dirk Geschke
dirk at lug-erding.de
Thu Feb 19 10:31:49 CET 2015
Hallo Holger,
> > wenn man sich die Funktion anschaut, das ist call_hook() in
> > /usr/lib/fai/subroutines, dann sieht man:
> >
> > if [ -x $hfile ]; then
> > echo "Calling hook: $hook.$cl"
> > sendmon "HOOK $hook.$cl"
> > # execute the hook
> > $hfile $dflag "$@"
> > check_status $hook.$cl $?
> > fi
> >
> > D.h. der Status wird zwar gecheckt und, wie in Deinem Fall, ein
> > Fehler ausgegeben, sowie geloggt. Das macht /usr/lib/fai/check_status.
> >
> > Aber mit der Fehlerausgabe endet es auch, call_hook() wird danach
> > normal beendet. Hier müsste eigentlich ein exit erfolgen, wenn $?
> > gleich 99 ist (das wird in die() auf diesen Wert gesetzt), täte
> > ich sagen...
>
> Das wuerde bedeuten, ein 'exit 99' in einem hook wuerde FAI abbrechen. Nun ist
> 99 sicher nicht der exit code, den jeder sofort aus Versehen verwenden wuerde,
> um einen nicht-fatalen Fehler zu signalisieren. Trotzdem scheint ein
> robusterer Mechanismus wie z.B. bei 'skiptask', nun ja, robuster. Wenn die
> Existenz einer Datei $LOGDIR/abort-fai-run signalisieren wuerde, dass der
> aktuelle FAI Prozess abgebrochen werden sollte, dann waere diese Datei zum
> einen sicher nicht "aus Versehen" erzeugt worden, und der Abbruchwunsch wuerde
> zum anderen sehr einfach und eindeutig die Aufrufkette hochpropagiert, egal ob
> aus Subshell oder source-hook. Weiterhin koennte jede task selbst entscheiden,
> ob sie im Falle eines Abbruchs uebersprungen wird oder nicht (task savelog,
> task faiend ...).
>
> Oder man laesst es halt, wie es ist, und verwendet task_error bzw.
> stop_fai_installation nur aus FAI selbst und aus source-hooks :-).
Das ist doch der Punkt, FAI ruft für die hooks ein Subshell auf
in der stop_fai_installation aufgerufen wird, der Return Code 99
auf den die() wird aber nicht ausgewertet und somit wird das
Ergebnis vom hook ignoriert.
Die Frage ist also eher: Soll dann abgebrochen werden oder soll
der Wert ignoriert werden. Das ist eine Designentscheidung, wobei
ich zu ersterem tendiere: Wenn es einen fatalen Fehler in einem
hook gibt, sollte FAI abbrechen.
Dafür scheint mir der Error-Code 99 ideal zu sein...
Viele Grüße
Dirk
--
+----------------------------------------------------------------------+
| Dr. Dirk Geschke / Plankensteinweg 61 / 85435 Erding |
| Telefon: 08122-559448 / Mobil: 0176-96906350 / Fax: 08122-9818106 |
| dirk at geschke-online.de / dirk at lug-erding.de / kontakt at lug-erding.de |
+----------------------------------------------------------------------+
More information about the linux-fai
mailing list