Dawno temu brałem udział w projekcie w którym udpate od microsoft cofnął pewną dostępną funkcję wyszukiwania z wykorzystaniem gwiazdki bo stwierdził, że z tego pewnie nikt nie korzystał. Na szczęście się z tego szybko wycofał. I wprowadził poprawki by przywrócić funkcję. Ale takie przypadki się zdarzają. Piszemy kod, wychodzi update który jakoś absolutnie ma nas nie tyczyć i nagle nasz kod leży.

Ostatnio miałem przypadek, że po zainstalowaniu mojego dodatku, nagle w Outlook nie można było otwierać załączników. Kika osób potwierdziło problem, ale nie wszyscy (na szczęście grupa testowa!). Spędziłem dobre dwa dni szukając i próbując naprawić problem otwierania załącznika typu OLE (mail w formacie RTF i załącznik inline) w mailu i jak to może być połączone z moim kodem.

Dlaczego to miałoby być podłączone z moim kodem? Wcześniej miałem podobny problem, też z załącznikami OLE i dziwnym zachowaniem Outlook a wszystko przez złe zwalniania obiektów w C#. Szukałem przyczyn w kodzie, analizowałem logi, wysyłałem kolejne wersje kodu by sprawdzić jakieś konkretne przypadki. I dalej nic. Problem u tych userów istniał u innych nie.

Do tego w głowie mi cały czas świeciło: według zasad korporacji, każdy ma te same aktualizacje itp. na kompie. Więc opcję problemu z aktualizacją z miejsca wywaliłem i się nawet nad tym nie zastanawiałem. No niby jak? Dlaczego?

Głupota jednak boli. Po dwóch dniach znalazłem wzmiankę na forum, że po zainstalowaniu jednego z patchy dzieje się coś z Outlookiem któremu przestaje działać opcja otwierania załączników. To znaczy, jak próbujemy otworzyć załącznik to dostajemy błąd:

“The program used to create this object is Outlook. That program is either not installed on your computer or it is not responding. To edit this object, install Outlook or ensure that any dialog boxes in Outlook are closed”.

Microsoft przyznał się do błędu i daje workaround. W zależności od źródła albo jest prosty workaround jak zrób forward maila albo bardziej skomplikowany: zmodyfikuj rejestr. Na szczęście tym razem to nie był problem mojego kodu dzięki zbiegowi okolicznościowemu – załączniki typu OLE były pomijane przez plugin.

Ale i tak bądź tu mądry? Przypomina mi się jeden bug z IE 6. Gdzie jedna osoba nie miała patcha zainstalowanego który naprawiał tagi <div/> – to potrafiło wywalić całą stronę. Znalezienie buga zajęło też 2-3 dni. Tym razem było coś w naszym kodzie, jednak…… jakby osoba aktualizowała IE (a nie robiła tego od wielu wielu wielU wieLU wiELU wIELU WIELU miesięcy) to by problemu nie było.

I sam nie wiem co w tym wszystkim jest najgorsze. Programowanie przez hackowanie, ugrząźć w bagnie, czy programowanie by Microsoft Update. Jak sądzicie?