← Back to team overview

sslug-teknik team mailing list archive

Re: Sv: Hjælp mig af med en Zombie

 

On Sun, 24 Sep 2000, Kenneth Aastrup wrote:

> Hvad gør man på et system hvor serveren absolut ikke må lukkes ?

Kører noget andet end Linux. Linux er ikke god, hvis man har processer der
kommer ud for noget i den her stil:

a) Åbner et device (eller en fil på et device, eller osv, altså tilgår
   et device. Stort set alle programmer gør dette).
b) Poster en skrivning eller en læsning til dette device (igen, stort set
   alle processer gør dette).
c) Kernen registrerer og allokerer ressourcer (midlertidigt) til
   b). (Igen, normalt)
d) Hardwaren fejler uventet.

d) er det kritiske punkt. Der er masser af situationer hvor dette kan ske,
f.eks. i forbindelse med IDE og SCSI diske. Dette håndterer Linux dårligt,
specielt er der _ingen_ måde, hvorpå man kan overtale kernen til at
frigive de ressourcer den allokerede i c). Da disse er registreret som
tilhørende processen, kan man ikke slå processen ihjel.

"Store" Unix systemer har faciliteter til at fjerne den slags ressourcer
fra kernen, så man kan fjerne en vilkårlig proces. Det har Linux pt. ikke.

Hvis "init 1" virker, vil kill -9 også virke (bør den ihvertfald -9 er det
stærkeste signal man kan sende).

En anden ting der kan fange een, er et kernemodul der hænger ved
indsættelse. Det vil aldrig blive færdiginstalleret. Det kan så ikke
fjernes igen. Reboot er den eneste vej i den situation. Et sådan modul
kunn f.eks. have følgende i init_module:

typedef struct{
  int a;
  int b;
} ged_t; 

int init_module() {
  ged_t * ged = NULL;
  ged.a = 42; /* seg fault */
  return 0;   /* Bliver aldrig kørt */
}

Hvis man forsøger at indsætte dette modul, vil det fejle, og være for
evigt uinitialiseret.

Morale: Linux er stabilt, men ikke særligt fejltolerant. 

Der er vist iøvrigt også en enkelt eller to situationer hvor man kan få en
ukillelig zombie med rent software, men jeg har glemt hvad det er.

Mads

-- 
Mads Bondo Dydensborg.                               madsdyd@xxxxxxxxxxxx
The Microsoft Dictionary

           multi-platform: Works with both Windows NT Workstation and
                           Windows 2000 Professional.



Follow ups

References