Newsgroup: it.comp.appl.notes-domino
Titolo: Freezing all server threads

03/29/2002 08:45:10 AM  SMTP Server: 172.16.1.1 disconnected. 1
message[s]
received
Fatal Error signal = 0x0000000B PID/TID = 773/4101
Freezing all server threads ...
Ad un ricevimento di posta da un'altro SMTP mi ha dato questo magnifico
errore.
L'ho pure risimulato ed ha frezzato ancora; per tre volte sono riuscito a
farlo schiantare ma sempre con un messaggio diverso.
Domino 5.08 on Linux.
Non è la prima volta che l'ho visto ed anche con versioni più vecchie
(dalla 5.06a) ma è la prima volta che ho scientificamente capito da cosa è
stato causato.
Qualcuno ne sa qualcosa.
-- 
Ciao./ Zio Ciano.
Born to run Unix
-Fare bene non e` bene, fare male non c'e` male.-

 Qualcuno ne sa qualcosa.
Il signal 11 (0x0000000b) e' un segmentation fault. Il classico GPF di
windows. Potrebbe dipendere da una zona di ram bacata, ma e' piu' facile
che sia stato il programma che ha tentato di utilizzare un puntatore
NULL o non correttamente inizializzato (famoso "puntatore a cazzo").
-- 
Dr.Ugo Gagliardelli,Modena,Italy-Certified uindoscrasher-AlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome
Spamers iros a la mierda/Spamers allez vous faire foutre
Spammers loop schijten/Spammers macht Euch vom Acker

NULL o non correttamente inizializzato (famoso "puntatore a cazzo").
Ram bacata spero di no e per ora lo escluderei perchè circa 3/4 mesi fa è
capitato quasi contemporaneamente su due server diversi.
Poi questo è un mitico IBM... (tocca tocca...)
Ma il puntatore a cazzo può capitare ancora o c'è un'evento particolare
che lo genera?


 che lo genera?
Scusa, ma non hai detto che sei riuscito a causarlo volutamente 2 o 3
volte?
Dicci cosa lo causa, no?
--
Juda of 3AM - juda(strudel)
despammed.com
/---------------/
Nella mia condizione di base sono piuttosto acido, ma difficilmente
rimango di sale.

Dicci cosa lo causa, no?
Quando si connette un server SMTP (lo vedi sul log) e pensavo ad un
particolare messaggio ma forzando piů di un'inoltro si č schiantato anche
con altri generati non dallo stesso client. 


 con altri generati non dallo stesso client.
???
Ma come, scusa, se fosse cosě il server starebbe sempre freezato.


Ma come, scusa, se fosse cos? il server starebbe sempre freezato.
Per fortuna no. Le simulazioni le ho fatte mettendo in coda o prendendo
quello che c'era già e d'un botto gli ho sparato circa una 10ina di
messaggi che in due casi l'ha frezzato, poi non l'ha più fatto rifacendo
la stessa cosa.
La cosa mi inquieta.
Stasera riprovo.


 Stasera riprovo.
E dargli una .09?


 che lo genera?
L'evento piu' probabile e' un "programmatore di merda" che non controlla
i puntatori prima di usarli. Io per esempio riesco a "freezare" il
server domino in diecimila modi diversi. 
Tipicamente le api C di domino in presenza di "puntatore a cazzo" invece
di impostare l'errno a EFAULT fanno scoppiare il programma chiamante. In
tal caso il comportamento di Linux e' quello di freezare il server,
l'AS/400 invece chiude tutti i processi del server domino e poi lo fa
ripartire (per un definito numero di volte), il windows ti pianta in
asso, l'os2 dice sys3175, etc.etc.etc.
:))


 :))
Che uomo... lo sposerei.


 Che uomo... lo sposerei.
Ancora qualche mese e' potro' essere "libero da vincoli matrimoniali". 
Ma tu scorreggi a letto?
:)


 :)
Sì, e poi faccio il soffietto con le coperte per sentirla meglio.


E dargli una .09?
Penso anch'io che farò cosi; è quello che ho fatto dalla 5.06a in su ma mi
piacerebbe sapere che cosa lo fa incazzare .
Poi non è detto che con la .09 il problema si risolva.


asso, l'os2 dice sys3175, etc.etc.etc.
In poche parole può capitare sempre?


 In poche parole puň capitare sempre?
Direi proprio di si', almeno finche' chi ha fatto il programma non abbia
testato (e coretto) tutti i casi in cui puo' avvenire. Nel tuo caso
specifico potrebbe essere una mail con un campo mancante che il task
router si aspetta di trovare, una stringa non nul-terminated, etc.etc.
un sacco di cose insomma.
Il problema e' che la Lotus in passato non ha mai accettato input
dall'utenza e questo non gli ha permesso di accedere ad una casistica
sufficentemente ampia da permettere un serio debug, quindi l'evoluzione
dei prodotti e' lentissima e soprattutto a spese dell'utenza. 
Ora sembra che le cose stiano un po' cambiando, per la prima volta ho
visto il link "Problem Report" almeno per le versioni beta.


visto il link "Problem Report" almeno per le versioni beta.
Sono cose che mi fanno fare dei brutti pensieri...



E' un fatto soggettivo, a me fanno solo "tirer di cancher"! 
(tirer di cancher = v.t., gergale; lett. lanciare neoplasie maligne;
est. augurare il peggio, imprecare con indignazione)
:))


est. augurare il peggio, imprecare con indignazione)
Ah! hanno lo stesso effetto anche a me...
Non è bello però che chi fa software proprietario faccia fare il beta
tester l'utente finale... con l'opensource pero'.....


 tester l'utente finale... con l'opensource pero'.....
Beh, e' sempre andata cosi', funziona anche, ammesso che il beta-tester
abbia accesso a chi sviluppa, anche solo postando su una specie di ng,
non si pretende piu' di tanto, ma il feed-back e' obbligatorio. 
A me e' capitato di assistere un client di IBM, beta-tester "ufficiale",
che poteva chiamarmi la' quando gli tirava a costo 0 (zero) e io avevo
accesso diretto telefonico con il laboratorio.
Erano altri tempi, ma bene o male la filosofia e' rimasta la stessa.


 Sě, e poi faccio il soffietto con le coperte per sentirla meglio.
Che uomo!


 Poi non è detto che con la .09 il problema si risolva.
Prova la 6, tra le nuove caratteristiche si legge: "UNIX: Fault
Recovery"
Penso che sia il comportamento gia' adottato per as/400, non ti
risolvera' il problema ma almeno non devi star li' a riavviare il server
a mano.


 
A volte semplicemente aggiungendo RAM questi problemi spariscono. In 
effetti è probabile che, come dice Ugo, venga fallita una malloc o 
funzione simile e che, senza controllare, usino il puntatore che 
ovviamente a questo punto punta a NULL.
Ciao
AZ

 significa dire che lo sono tutti.
Era riferito al caso in cui OGNI api che chiami con un puntatore NULL ti
inchioda il server, che per essere un'"eventualita'" e' troppo
"sistematica".


"sistematica".
Infatti i miei tasks e le mie extentions, se si
bloccano, si bloccano loro e il server continua tranquillissimo.
--
Juda on the web
--------------------------------
Inviato via 
http://usenet.iol.it
 

 bloccano, si bloccano loro e il server continua tranquillissimo.
Anche i miei, ma la frequenza di "if (pippo != NULL)" e' relativistica.
C'e' un altro modo che tu sappia? 


 C'e' un altro modo che tu sappia?
Ccioè, 'nke senzo?


 Ccioè, 'nke senzo?
Nel senso che ho provato in tutti i modi a me conosciuti di catchare i
signal e ogni sorta di eccezione ma non sono mai arrivato a capo di
nulla, per cui se non testo minuziosamente tutti i parametri che passo
alle api di Domino, prima o poi scoppia il server.
Ovviamente le due dizioni "in tutti i modi a me conosciuti" e "in tutti
i modi possibili" non sono equivalenti, tu come fai, hai qualche asso
nella manica?
