Project

General

Profile

Actions

Task #521

closed

Log/backtrace při pádu/chybě v serverovém kódu

Added by Pavel Kácha over 12 years ago. Updated about 12 years ago.

Status:
Closed
Priority:
Low
Assignee:
Tomáš Plesník
Category:
-
Target version:
Start date:
07/30/2012
Due date:
08/12/2012
% Done:

0%

Estimated time:

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

Related to Warden - Bug #534: V případě serverové výjimky RPC volání nevrátí validní SOAPClosedTomáš Plesník08/21/2012

Actions
Actions #1

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
Actions #2

Updated by Pavel Kácha about 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").

Actions #3

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
Actions #4

Updated by Pavel Kácha about 12 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF