Newsgroup: it.comp.appl.notes-domino
Titolo: A proposito di server Crash

Succede questo:
Dalla console di domino:
Thread=[330215:00133:00002-00000004]                                      
PANIC: Nessun
errore                                                       
 
_C_pep                                        0     NOTES0 LSXWBCS
¬330215|
 main                                        
1                            
  notes_main                                
14                            
   NotesMain                                  4  
NOTESAI0                 
    AddInMain                                12
WBCSADDINM                 
     SockMain                                31
WBCSSOCKMA                   
      funcChgEntry                           26
WBCSFCENTR                   
       NIFFindDesignNoteExt                   5   FINDVIEW
LIBNOTES          
        FindDesignNote                       
6                              
         NSFDbFindDesignNote                  3   
NSFSEM2                   
          iNSFDbFindDesignNote                7     
WRAP3                   
           DbFindDesignNote                  10  
DBFINDNT                   
            DbGetNamObjDesignEntry           48  
DBOBNAME                   
             IsDesignEntryInteresting        16  
DBFINDNT                   
              CmemflagTestMultiple           37  
CSTRFLAG                   
               Halt                           2   
OSPANIC                   
                Panic                       
25                              
Sat Apr  6 14:20:21    Fault recovery is in progress: Fatal error,
running di diagnostics      
Sat Apr  6 14:20:25    Fault recovery is in progress: Terminating tasks
Chi causa l'errore e' la funzione funcChgEntry di un srver atsk mentre
esegue l' API di domino NIFFindView, questo e' lo spezzone di C
interessato:
DBHANDLE    dbh; 
NOTEID      vwi;
STATUS      error; 
...
while((error = NSFDbOpen(WBCS_SERVER_DBFN, &dbh)) != NOERROR) { 
    if (error = NIFFindView(dbh, WBCS_WCLI_VIEW, &vwi))
break;                                 ...
WBCS_SERVER_DBFN e WBCS_WCLI_VIEW sono variabili globali utilizzate da
tutta l'applicazione,  insospettabili stringhe indicanti il nome di un
database e il nome di una vista di quel database, che, al momento
dell'errore con l'applicazione sotto debug, erano corretamente
valorizzate e NULL terminate. 
Secondo voi c'e' qualcosa di strano?
-- 
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

 Secondo voi c'e' qualcosa di strano?
Scusa, forse sono tordo io, ma l'errore te lo becchi sull'open del DB o
sulla vista? E poi se il nome del DB è una costante che senso ha fare un
ciclo che lo riapre finché ci riesce? Non capisco...
--
Juda of 3AM - juda(strudel)
despammed.com
/---------------/
Nella mia condizione di base sono piuttosto acido, ma difficilmente
rimango di sale.

 ciclo che lo riapre finché ci riesce? Non capisco...
E' un while finto, mi serve unicamente per utilizzare il break in caso
di errore e non prolificare troppo la nidificazione degli if, in pratica
e' un blocco di questo tipo:
while(1) {
 if (errore = funzione()) break;
 if (mi_va_di_uscire) break;
 etc. etc. break;
 break;
}
Ma non credo che sia questo a far crashare il Domino... quello crasha
perche' e' bastardo. ;(
Ironia della sorte la documentazione definisce l'API "very efficient":
#include <nif.h>
STATUS LNPUBLIC NIFFindView(
	DBHANDLE  hFile,
	char far *Name,
	NOTEID far *retNoteID);
Description :
	This is a macro used to return the note ID of a view or shared folder
note, given the name.  The name is compared without regard to case (case
insensitive).
This function uses an on-disk index of these types of notes and is very
efficient.
#define NIFFindView(hFile,Name,retNoteID)
NIFFindDesignNoteExt(hFile,Name,NOTE_CLASS_VIEW,
DFLAGPAT_VIEWS_AND_FOLDERS, retNoteID, 0)


<premessa>
queste cose capitano anche a me
</premessa>
O BISCHERONEEEEE...
ma l'hai visto che hai scritto?
while((error = NSFDbOpen(WBCS_SERVER_DBFN, &dbh)) != NOERROR)
Non ti sembra che ci sia un ! che si è intrufolato al posto dell'=?
Ora poi... perché non ti apra il DB è un'altro par di meniche; però...


Ironia della sorte la documentazione definisce l'API "very efficient":
Per fare crash, forse  :-)9
Obelix

 Ora poi... perché non ti apra il DB è un'altro par di meniche; però...
Un errore di copia incolla, in realta' c'e' == NOERROR, anzi ho
modificato il programma e la open del DB l'ho messa in un if esterno al
while (non si sa mai), poi ho fatto un altra cosina carina permessa dal
compilatore C dell as/400, e cioe' ho istruito il compilatore di
espandere tutte le macro in modo da poterle vedere espanse anche  in
debug e sai cos'ho scoperto?
Ho scoperto che la 
#define NIFFindView(hFile,Name,retNoteID)
NIFFindDesignNoteExt(hFile,Name,NOTE_CLASS_VIEW,
DFLAGPAT_VIEWS_AND_FOLDERS, retNoteID, 0)
viene espansa con un vaore in codifica EBCDIC anziche' ASCII per la
stringa costante DFLAGPAT_VIEWS_AND_FOLDERS. Ora con l'ho ridefinita con
un valore ascii e il domino ha smesso di scoppiare.
Ovviamente di tutte le Rose del giardino Lotus ci sono rimaste solo le
spine! 
La sucessiva NIFFindByKey non trova mai un cazzo, ma penso di essermi
incasinato con l'ITEM_TABLE.
Ora mi son rottole balle e ci guardo domani.
Cazzo c'entra se e' domenica?
:))



Ridi, ridi, che quando vengo su ti faccio vedere io!
:))


 Cazzo c'entra se e' domenica?
Bhé? Chi credi di trovare qui domani a spippolare su programmi C/C++?


 Bhé? Chi credi di trovare qui domani a spippolare su programmi C/C++?
'Na vitaccia!


Ridi, ridi, che quando vengo su ti faccio vedere io!
Quando vieni su, portami quell'NSF per nalaizzare i log del Proxy, ci
ho giusto installato un Domino 5xx proprio per quello  :-))
Obelix

 'Na vitaccia!
Io però mi sono alzato tardi.


Bhé? Chi credi di trovare qui domani a spippolare su programmi C/C++?
Il che mi rende lieto di programmare su RPG lun-ven   :-)))
Obelix

 Il che mi rende lieto di programmare su RPG lun-ven   :-)))
                                                              ^^^^^
Giochi di ruolo? >:-D


 Giochi di ruolo? >:-D
"Report Layout Generator" e "Role Player Game" non sono sinonimi: sta
attento che Obelix ti puo' fare del male per simili battute!


 attento che Obelix ti puo' fare del male per simili battute!
E bhè, essendo cascato nel paiolo da piccino...
S.P.Q.H. Sono Pazzi Questi Hostici


sta attento che Obelix ti puo' fare del male per simili battute!
"perche' dovrei?? gli ha gia' fatto male anche troppo la vita" (c)
:-)))
Obelix

 "perche' dovrei?? gli ha gia' fatto male anche troppo la vita" (c)
Ma che cattivo che sei!


Anzi... cattivo e con l'orologio settato male.


Ma che cattivo che sei!
Non io, ma la vita. 
Obelix

Anzi... cattivo e con l'orologio settato male.
A 'sto punto, inizio a credere che sia il server..... cazzo, ho
controllato l'ora almeno sei volte...
Obelix

 Non io, ma la vita.
Lo so che hai tutti i motivi per odiarla, ma d'altra parte come č
toccato a te poteva toccare a chiunque altro (forse un po' meno che a
te...).


 controllato l'ora almeno sei volte...
Strano, a meno che tu non abbia un server NNTP d'appoggio in locale (e
non mi pare proprio dal path presente nel messaggio) l'ora del post
dovrebbe essere data dal client, no?
O intendevi dire che hai un time server sballato?


dovrebbe essere data dal client, no?
Il client e' a posto, o almeno, ha lo stesso errore del televideo...
Obelix

Lo so che hai tutti i motivi per odiarla,
Ma io non la odio. Sono masochista, non lo sapevi??? ti sto scrivendo
da NT  :-))
Obelix

 da NT  :-))
Che sei masochista lo vedo, ci sei sempre e solo la notte...


Che sei masochista lo vedo, ci sei sempre e solo la notte...
Di giorno lavoro, alla sera cedo il compiuter a mio figlio.... mi
resta la notte...
Obelix

 resta la notte...
Meno male che non ho un figlio... cosě ho anche la sera :-DDD
