Newsgroup: it.comp.os.linux.sys
Titolo: processi che vanno in "loop" [lungo]

Salve a tutti e scusate il sbj, ma sinceramente non saprei come definire 
diversamente il bizzarro comportamento che due macchine (identiche per HW 
e per S.O.) hanno iniziato ad avere..
orbene, S.O. Centos 4.8 (è una derivata, ma il core è quello): tutto è 
nato installando gli ultimi aggiornamenti del kernel e kmod.. durante 
l'installazione di uno dei kmod ho visto che uno dei processi (weak-
packages è uno script di mkinitrd) richiama se stesso in modo.. in poche 
parole, dopo 30 secondi di esecuzione ho circa 700 processi tutti figli 
di uno ma recorsivi
idem se cerco di rimuovere un kernel o un kmod (ed in questo caso lo 
script incriminato è new-kernel-packages)
un estratto di ps fax (l'ho adattato per renderlo un po' + leggibile, ma 
non modificato nella struttura)
17414 pts/1    S+     0:00  \_ rpm -e kernel-2.6.9-67.0.4.EL
17415 pts/1    S+     0:00   \_ /bin/sh /var/tmp/rpm-tmp.32605 4
17417 pts/1    S+     0:00    \_ /bin/bash /sbin/new-kernel-pkg --
rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
17437 pts/1    S+     0:00      \_ /bin/bash /sbin/new-kernel-pkg --
rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
17457 pts/1    S+     0:00        \_ /bin/bash /sbin/new-kernel-pkg --
rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
17477 pts/1    S+     0:00          \_ /bin/bash /sbin/new-kernel-pkg --
rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
17497 pts/1    S+     0:00            \_ /bin/bash /sbin/new-kernel-pkg --
rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
17517 pts/1    S+     0:00              \_ /bin/bash /sbin/new-kernel-pkg 
--rminitrd --rmmoddep --remove 2.6.9-67.0.4.EL
cercando di andare a fondo ho richiamato una pagina di man e... 
sorpresa.. anche qui ho uno script (nroff) che fa la stessa cosa..
continuando nella bizzarria, se richiamo
nroff -v --------> "loop"
sh nroff -v -----> funziona (mi stampa la versione)
sh -x nroff -v --> funziona  "      "       "
ho quindi richiamato gli script weak-packages e new-kernel-pkg con i loro 
parametri con sh e sh -x e girano correttamente (naturalmente questo non 
risolve il mio problema in quanto vengono richiamati all'interno 
dell'esecuzione del comando rpm)
ho altre 20 macchine diverse per HW ma con stesso identico S.O. che non 
presentano questo problema.. stessi rpm, stesso tutto.. cambiano solo ip, 
utenti e file dei clienti
continuando con la storia. le due macchine hanno un "passato" diverso.. 
la prima è ottenuta dalla migrazione da altro hw e non ha MAI presentato 
problemi del genere, la seconda è una installazione fresca fresca, 
nemmeno 20 gg
le macchine sono hp ml310 con raid sw (una raid1, l'altra raid5)
pensando che fosse un problema di sh/bash, ho anche forzato la 
reinstallazione del pacchetto, ma nulla è cambiato.
per la mia minima esperienza sarei orientato ad escludere una dipendenza 
dall'hw, visto che, tanto per dire, l'installazione/rimozione di 
qualsiasi altro rpm funziona correttamente..
inoltre tutti gli script a bordo funzionano correttamente, e nei log non 
ho alcuna traccia della cosa
qualsiasi hint è assolutamente ben accetto
Ciao
Stefano

 nato installando gli ultimi aggiornamenti del kernel e kmod.. durante
Se provi a ripartire col kernel precedente all'aggiornamento che
succede?

 succede?
tutto uguale.. 

 packages è uno script di mkinitrd) richiama se stesso in modo.. in poche
]zac[
Quindi è lo script/programma mkinitrd buggato e c'è da qualche parte una
configurazione, un pacchetto, ecc. che lo porta una situazione non
prevista.
Oltre a rimuovere e rinstallare il pacchetto con rpm, potresti debuggare lo
script mettendo degli echo "messaggio" e degli exit per vedere il punto il
cui lo script entra in loop, e tentare di capire perché.


single user mode?



mmmhh... non ho provato/non posso farlo perchè le macchine sono tutte 
remote (in sedi diverse)..
comunque sarà uno degli step da provare
S.


Pero` diceva che succedeva 'sto casino anche con man, che richiama
nrof.
Secondo me e` un problema di shell, nel senso che gli script invece di
usare
lei per eseguire usano se stessi.
Non so se c'entri, ma annaspando, env che dice riguardo alla shell e
dentro
/etc/shells che c'e`?
Andrea

 punto il cui lo script entra in loop, e tentare di capire perché.
ho comunque già forzato sia mkinitrd che bash.. 
ho eseguito un "strace nroff -v" e si ferma su un "waitpid(-1,".. poi ho 
dovuto dare Ctrl-C 
se interessa ho anche fatto un "strace sh nroff -v" (che funziona 
correttamente)..
aggiornamento dell'ultimo minuto, controllando uno dei server che ancora 
devo aggiornare (li sto controllando tutti, mi basta richiamare man e 
rimuovere uno dei kernel + vecchi) che è su HW completamente diverso 
(assemblato), ho lo stesso problema.. quindi parlerei senza dubbi di 
qualche pacchetto sminchiato
S.

 Andrea
ciao
mi hai dato l'imbeccata giusta
in .bashrc di root c'era una chiamata ad uno script.. rimossa quella 
tutto è andato ok.. la cosa strana è che quella chiamata c'è sempre 
stata.. ok, posso farne a meno
/me che mi sento un po' pirla
grazie a tutti per il supporto
S.

 stata.. ok, posso farne a meno
]zac[
Che script? che faceva lo script? (sarebbe utile saperlo).

 usare
]zac[
Ho letto gli altri post, bel colpo, bella intuizione.



a mio parere nulla di che.. richiama qualcosa come
/usr/bin/wget --spider "mio_sito/pagina.asp con parametro"
ripeto, sono anni che quello script c'è.. comunque adesso lo sego 
dappertutto
ciao
S.


Stefano Zamboni ha scritto:

Io sono praticamente contrario a cercare di capire perche' le cose non
funzionano se cambiandole si riesce a farle funzionare (questione di
tempo mentre teoricamente o come indole e tutt'altra cosa), ma mi
sembra che in questo caso forse potrebbe valer la pena di cercare di
capire perche' non funzionavano, dato che non si capisce perche' il
colpevole trovato sia tale e quindi non vorrei che il problema potesse
essere qualche altro. Ovvero quello script potrebbe essere un sintomo,
un indizio per capire quale sia il vero problema e non cercare di
capirlo potrebbe costare il ritrovarsi da capo, non si sa quando non
si sa come, ma sicuramente nel momento meno opportuno e nelle
condizioni piu` devastanti (Morphy insegna).
Andrea

 /usr/bin/wget --spider "mio_sito/pagina.asp con parametro"
non è che wget ritornava con qualcosa di diverso da zero?
se hai voglia prova a riabilitare lo script aggiungendo in coda
exit 0
-- 
Mi contraddico, forse?
Ebbene mi contraddico (sono vasto, contengo moltitudini)
                                         -- Walt Whitman

 exit 0
è possibile.. ma colgo l'occasione per cambiare il sistema..