19 Responses to “Wypijmy za błędy”

  1. Monica Says:

    Oooooooo, piękna historia. :D A ja się martwiłam, że paru nędznym dziesiątkom tysięcy userów wysłałam mail z linkiem do testówki zamiast prawdziwej strony.

  2. Piotr 'Mikołaj' Mikołajski Says:

    Notka zacna, ale wstęp o sukcesomanii po prostu bezcenny.

  3. norveg Says:

    Piękna historia z jeszcze bardziej uroczym wprowadzeniem. Bardzo miły przedfabryczny poranek mi zafundowałeś:)

  4. Mateusz Kozak Says:

    Emil, zrobiłeś mi poranną trasę tramwajem ;)

  5. Wojtek Says:

    Ej! Jakto kwartał ciszy? Kwartał ciszy to można zrobić z wpisami do pamiętnika, a tu ludzie czekają :-)

    Mam nadzieję, że szybciej zatęsknisz.

  6. suda Says:

    Same here :)
    BTW nazwy pliku, dostał mi się kiedyś opierdol za pliki o nazwie dupa.pas (miałem jakąś dziwną tendencję do nazywania tak plików/klas/zmiennych i używania tego słowa jako “Hello world”) i od tego czasu wszystko nazywam test.* a testowe echo/print wita tekstem “Ala ma kota” ;)

  7. yanoo Says:

    U mnie kiedyś było podobnie, tylko na zasadzie “cholera, coś długo wysyła. Poprawić i F5!”

    I tak kilkadziesiąt razy.

  8. GDR! Says:

    O, a ja kiedys oddawalem klientowi synchronizacje jego serwisu z CRM-em i okazalo sie ze z testow zostala Sandra Bullock z Anal Sex Department. Na szczescie klient mial poczucie humoru. Od tego czasu nauczylem sie stosowac glupie, nudne nazwy.

  9. Tomek Says:

    Fajnie, fajnie, ale prócz puenty i wniosków brak najważniejszego. Znaczy byś się garścią tych wymyślonych akronimów podzielił ;)

  10. cezio Says:

    Wysyłanie emaili nigdy nie było proste.

    W poprzedniej pracy zdarzyło mi się zrobić małą poprawkę w jednej funkcji w bazie. Pięć minut po poprawce zaczynał się długi weekend majowy i mój urlop. Jakież było moje zdziwienie, gdy w sobotę po południu, kiedy po kilkugodzinnym pałętaniu się na odludziu wróciłem w objęcia zasięgu miłościwego operatora, telefon oznajmił mi, że dzwoni do mnie kiero. Okazało się, że system, nad którym pracowaliśmy, dostał regularnego pierdolca i masowo wysyłał maile. Te same. Do każdego użytkownika. Co minutę. Od 16.30 w piątek. Niektórym w kolejce się zebrało kilka wiadomości, więc dostawali wielokrotną dawkę. Na zawał nie zszedłem tylko dla tego, że kierownik powiedział, że udało mu się już zgarnąć admina, który na szybko zamknął połączenia smtp. Niemniej, resztę urlopu byłem zielony i nawet zimne piwo mnie nie cieszyło.

    Analiza post mortem wykazała:
    - emaile były wysyłane z kolejki trzymanej w bazie danych.
    - do kolejki trafiały wszystkie wiadomości z serwisu (wiadomości wewnętrzne, powiadomienia, zaproszenia dla zewnętrznych użytkowników).
    - kolejka była wysyłana co minutę.
    - wysyłała funkcja składowana, która w pętli, dla każdej wiadomości brała email docelowy, szablon, treść, łączyła się z serwerem pocztowym i wysyłała. po wszystkim zaznaczała wysłane wiadomości jako wysłane.
    - jeśli by kto pytał, dlaczego kolejka: kilka miesięcy wcześniej mieliśmy problem w serwerowni, który objawiał się koszmarnie długimi połączeniami między maszynami w sieci serwerowni. wysyłanie każdego emaila następowało bezpośrednio z aplikacji i trwało za długo. przesunęliśmy więc wysyłanie do kolejki w bazie.
    - funkcja działała w 1 (słownie: jednej) transakcji.
    - moja zmiana polegała na tym, że kolejka była wysyłana jednorazowo ‘do oporu’, a nie paczkami po 10 sztuk. oczywiście był mutex.
    - mniej więcej w połowie wysyłki następował wyjątek, który powodował rollback transakcji.
    - wyjątek następował przy próbie wysłania na adres, w którym ktoś podał znak # zamiast @. Serwer odpowiadał, że nie wyśle bo adres docelowy jest być nieprawidłowy.
    - jak na zadanie cronowe przystało, minutę później następowała kolejna próba wysłania wiadomości z kolejki, które nie zostały oznaczone jako wysłane. tak przez popołudnie, wieczór, noc, poranek i przedpołudnie. około 1100 razy.
    - feralny email wziął się z importu użytkowników z jednego systemu legacy.
    - przy imporcie nie sprawdzaliśmy poprawności emaili (wrzutka bezpośrednio do bazy), ufaliśmy, że są dobre, bo system legacy działał bez problemów od kilku lat.
    - okazało się, że w systemie legacy nie było walidacji emaili. Można było podać dowolny string jako email.
    - fuckup zauważyła dyrektorka, która przypadkiem w sobotę chciała sprawdzić na swoim smartfołnie, jak na tym serwis wyglądał (wyglądał okropnie). Zauważyła, że dość często powtarzały się komentarze, że serwis zaspamował komuś skrzynkę pocztową.

    Lista wysyłkowa była długa, ale w sumie poszkodowanych było około 200 użytkowników, w tym sporo spoza systemu, bo dostali zaproszenia od istniejących użytkowników.

    Sprawa, na szczęście, rozeszła się po kościach. Było przepraszanie użytkowników, jakieś podarunki z firmy w ramach zadośćuczynienia dla najbardziej poszkodowanych. Dostałem opierdol, głównie za to, że złamałem firmową regułę niewrzucania niczego na produkcję w piątek, zwłaszcza przed urlopem (co mi się oczywiście jeszcze kilka razy potem zdarzyło). Sromota trzyma do dziś.

  11. miskidomleka Says:

    Historyjka zacna, wstęp rewelacyjny!

  12. Zuzanka Says:

    Bym napisała, ale jeszcze pracuję. Bywało spektakularnie, również z wizytą u prokuratora ;-)

  13. Tweets that mention Bronikowski.com » Blog Archive » Wypijmy za błędy -- Topsy.com Says:

    [...] This post was mentioned on Twitter by Filip Chabik, 10przykazan.com. 10przykazan.com said: Wypijmy za błędy [Bronikowski.com] http://bit.ly/gtE01O [...]

  14. 3v11 Says:

    jak zwykle chłodno.

    pisz jeszce, bo ostatnimi czasy coś dużo tych przerw :(

  15. radxcell Says:

    Ten art mnie zadziwił. I to na więcej sposobów niż Jenna Jameson zadziwiła Petera Northa.

    Zadziwiło mnie, że:
    1. Można nie przyznać się do błędu w pracy. Bo z TŻ, to różnie bywa ;)
    2. Można odnosić się do pracownika używając wyzwisk personalnych.
    3. Można pozwalać odnosić się tak do siebie w pracy. Nawet w pierwszej.
    4. Picie kawy stanowi element lansu.
    5. Trzeba logować się o 6 rano, żeby wyskoczyć w południe na lancz.
    6. Zaraz po malowniczym opisie tuszowania błędu wespół z kierownictwem następuje morał który mówi, że warto się od razu do błędu przyznać.

    Ech, ja chyba rzeczywiście w jakimś innym świecie żyję.

    A propos uprzejmości słownych. U nas raz była historia, że menedżer odezwał się do pracownika – nazwijmy to – bezpośrednio. Nauczył się chyba do końca życia, że to nie jest właściwe zachowanie…

  16. Cosi Says:

    Co prawda moja historia nie umywa się do Twojej epopei, ale było tak:
    Wprowadzaliśmy zmiany do dużego sklepu internetowego. Kolega pisał funkcję, która usuwała w jakiejś tam sytuacji pojedyncze zamówienie. Zachodzę ci ja kiedyś do biura, a kolega blady. Okazało się, że w poleceniu DELETE FROM zapomniał dodać warunku WHERE.
    Na szczęście teraz każdy szanujący się serwer ma automatyczny backup, ale i tak chłopak pewnie posrał się na rzadko.

  17. radxcell Says:

    Ale to tak na produkcji sobie grzebał? :)

  18. Cosi Says:

    Padłbyś, jakbym Ci opowiedział, jakie rzeczy “się robiło” :D
    Nie będę mówił, co to za firma, bo jakiś czas temu pewna duża korporacja ją przejęła, a kto wie, czy ich agenci nie czytają tego zacnego bloga ;-)
    Dodam tylko, że od dawna tam nie pracuję.

  19. kot Says:

    popłakałam się :)

Leave a Reply