Task #521
closedLog/backtrace při pádu/chybě v serverovém kódu
0%
Description
Server by při pádu měl uložit (pokud to stihne) backtrace a důležité stavy (např. signál, který ho složil, požadavek, který pád způsobil).
Related issues
Updated by Pavel Kácha over 12 years ago
- Due date set to 08/12/2012
- Assignee set to Tomáš Plesník
- Priority changed from Normal to Low
Updated by Pavel Kácha over 12 years ago
Z Jabberu:
Korektně házíme SOAP::Fault (což je o několik řádů lepší, než bylo předtím), ale pořád může nějaká volaná knihovna (třeba XML parser pod SOAPem) vyhodit obyčejnou textovou výjimku. pokud bychom se se SOAP::Fault popasovali returnem, mohli bychom udělat globální handler na výjimky (kde bychom čekali jen textové), které bychom mohli chytat jako interní chybu a případně z nich taky udělat validní SOAP::Fault
Takže pokud funguje return SOAP::Fault třeba z saveNewEvent, stačilo by nám upravit errMsg na:
... if (defined $soap_msg) { return SOAP::Fault->faultstring($soap_msg); } } # End of sendMsg
a tam kde se používá, místo errMsg(...) volat rovnou return errMsg(...)
Jen je teď v errMsg
if (defined $soap_msg) {
Pokud chceme jen zalogovat, ale nevracet ještě chybu klientovi. To by se muselo udělat jinak. No, třeba tak, že by si holt volající nezavolal return errMsg("err", "baf", "BAF") ale jen errMsg("info", "bubu").
Updated by Tomáš Plesník about 12 years ago
- Status changed from New to Resolved
Hotovo, zmeny nakomitovany v revizi 4189ee7e. S timto ukolem jsem do warden-server.conf doplnil i volbu pro zapnuti/vypnuti logovani pomoci Syslogu a zapnuti/vypnuti verbose mode.
Ukazka vypisu stacku Warden serveru:
Oct 8 15:50:13 warden-dev apache2[13581]: Cannot prepare ROE-ANY statement in function 'getNewEvents': DBI::db=HASH(0x7fc792774630)->errstr Stack info: at /opt/warden-server/lib/Warden.pm line 289 Warden::getNewEvents('Warden', 'HASH(0x7fc791daad08)') called at /usr/share/perl5/SOAP/Lite.pm line 2799 eval {...} called at /usr/share/perl5/SOAP/Lite.pm line 2784 eval {...} called at /usr/share/perl5/SOAP/Lite.pm line 2750 SOAP::Server::handle('SOAP::Transport::HTTP::Apache=HASH(0x7fc791cb3b00)', '<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xs...') called at /usr/share/perl5/SOAP/Transport/HTTP.pm line 432 SOAP::Transport::HTTP::Server::handle('SOAP::Transport::HTTP::Apache=HASH(0x7fc791cb3b00)') called at /usr/share/perl5/SOAP/Transport/HTTP.pm line 805 SOAP::Transport::HTTP::Apache::handler('SOAP::Transport::HTTP::Apache=HASH(0x7fc791cb3b00)', 'Apache2::RequestRec=SCALAR(0x7fc7912fb430)') called at /opt/warden-server/lib/Warden/ApacheDispatch.pm line 23 Warden::ApacheDispatch::handler('Apache2::RequestRec=SCALAR(0x7fc7912fb430)') called at -e line 0 eval {...} called at -e line 0
Updated by Pavel Kácha about 12 years ago
- Status changed from Resolved to Closed