Skip to content

The Nightly WTF

23 July 2009

De ce nu e bine să faci debugging noaptea: Am o aplicație care, printre altele, cheamă niște stored procedures de pe mai multe thread-uri. Aseară am descoperit un bug în componenta de logging – log-urile care trebuiau să fie super detaliate erau niște fișiere goale. Așa că m-am apucat vitejește de depanat. Am găsit problema, am reparat-o și i-am dat drumul la aplicație să văd dacă merge. Surpriză – logul conținea excepția System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached pentru fiecare thread care apela un stored procedure.

Excepția înseamnă, de obicei, că un obiect SqlConnection nu este închis cum trebuie (cu SqlConnection.Close()). Și mă apuc să sap prin cod – unde las eu conexiuni deschise? Nici unde. Fiecare conexiune pe care o deschideam era urmată de un try-finally și în blocul finally închideam conexiunea. Ce naiba? Mă uit pe un alt calculator unde rula aplicația – acolo nu era nicio problemă. Încep să mă gândesc ce am putut să stric lucrând la componenta de logging. Și totuși, de ce rămân conexiunile la baza de date deschise, dacă eu le închid pe toate? Panică.

Într-un final am rezolvat misterul – îmi schimbasem parola de curând și serviciul SQL Server, care rula sub contul meu, nu a mai putut face log in așa că era oprit. Eroarea nu o primeam pentru că erau prea multe conexiuni deschise, o primeam pentru că nu se putea efectua nicio conexiune. Și așa am pierdut eu cam o oră azi noapte, ca să depanez nimic.

From → true story

6 Comments
  1. ar fi interesant de vazut cum pui breakpoints in nimic😛

  2. vladr permalink

    Sau cum faci step into nimic🙂

  3. filosofic vorbind, asta facem zi de zi: step into nimic.😉

  4. vladr permalink

    Iniginerește vorbind, însă, nu știu ce mi-ar zice managerul dacă i-aș spune că fac debugging filosofic😛

  5. Sau ce ar spune daca ai aplica teoria relativitatii cand faci debugging: daca bugul exista sau nu… este relativ🙂

  6. vladr permalink

    Ce vrei să zici tu în ultimul comment e clasicul “it’s not a bug, it’s a feature”🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: