מרדף אחרי באגים

לפעמים אני צריך לחזור לקודד, למשל כשהאתר שלי הפרטי מחליט להחרים את הגולשים באקספלורר. כשזה מסתבך אני מרגיש כמו כלב ציד, רץ אחרי סימני ריח על המקלדת ומחפש עקבות של "מה לעזזאל קורה פה ואיך לתקן?"

כלב ציד רץ על המקלדת

השבוע האחרון היה משהו מיוחד. שני באגים מעצבנים התגלו באתר הפרטי שלי ושניהם בכלל לא קשורים לקוד של האתר. לא הרבה אנשים מודעים לזה אבל הרבה מאד אתרים מפעילים קוד שמונח אצל צד שלישי או תלויים בהגדרות של מישהו אחר. בימים האחרונים התרוצצתי מול שני מקרים כאלה. החוכמה במקרים כאלה היא לאבחן מהר, לצמצם נזקים ורק אז לפתור.

המקרה הראשון התחיל כשפתאום האתר טען כל דף פעמיים. מה שגולשים ראו היה שהדף מופיע, נעלם ומופיע שוב. בפעם השניה נוסף גם סימן # לכתובת הדף.
לקח קצת זמן לגלות אבל זו היתה תקלה של AddThis - כפתור השיתוף הנפוץ ביותר ברשת. הם שיחררו גרסה חדשה ובלי להודיע לאף אחד חירפנו אתרים כמו שלי וכמו themarker וגדולים יותר בארץ ובעולם. ברגע שעליתי על זה הורדתי את הכפתור מהאתר. הפורום של Addthis התחיל להתמלא בהערות של לקוחות ובאמת תוך יומיים יצא תיקון חירום שהסדיר את המצב ואפשר לי להחזיר את הכפתור.

המקרה השני היה יותר גרוע. עקב התקפה של האקרים (כנראה מירדן) על השרת, שינתה חברת האירוח את ההגדרות שלו. בעקבות השינוי דפדפן אקפלורר בלבד החליט שלא נאה לו להוריד קבצים מהאתר. מאחר וכל מהות האתר שלי היא שיתוף קבצים של אדריכלים, ברור שמדובר באסון.

לא יכולתי להחזיר את הגדרות השרת, גם לא ידעתי איזו הגדרה בדיוק תקעה את המערכת. נאלצתי ללכת ולבדוק מה בדיוק נשלח לדפדפן. במהלך הורדת קבצים נשלחות הוראות לדפדפן ומבוצעת שיחה בינו לבין השרת שמגדירה לו מה גודל הקובץ, שמו, ועוד פרמטרים שמאפשרים את ההורדה. את השיחה הזו לא ניתן לראות... בדרך כלל.

כדי לראות מה בדיוק עובר בין הצדדים התקנתי את התוכנה HTTP Debugger. זו תוכנה שמצותתת ומציגה את כל מה שעובר החוצה ופנימה בין המחשב והאינטרנט. בעזרתה איתרתי מה חסר בשיחה ואת זה השלמתי דרך הקוד.
(האמת יותר מסובכת מזה אבל את מי זה כבר מעניין).

אני חייב להודות שאני נהנה מכל זה. מלחמות מול האקרים או מרדפי באגים שאתה בכלל לא יודע מה גרם להם זה תחביב מספק מאד. כמו משחק שח או משחק אסטרטגיה אחר, אני מרגיש כמו איזה כלב צייד - רץ אחרי המטרה, מנסה לזהות ולמצוא אותה כמה שיותר מהר.

מי אמר חננה?! מי אמר את זה!