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