אזהרה: באג 2009

לקוח דיוח לי היום שהמערכת שלי מדווחת תאריך נכון, אבל לשנת 2009 במקום 2008 .אחרי בדיקה בלוגים ראיתי שלא בכל מקום מופיע 2009. החשד הראשון נפל על libc, אשר איכשהו עדכנה את השנה לא נכון למערכת, אבל בפועל התאריך והשעה היו נכונים לגמרי.

גם בעיה בlibc לא מצליחה להסביר למה התאריך של הלוג נכון התאריך של המערכת הוא נכון  רק התאריך של הדיוח שלהם הוא לא. אז נכנסתי לקוד של הדיווח שלי, והתחלתי לקרוא עוד פעם באמצעות man date את הפורמט של strftime. מסתבר שהזנתי לשנה את %g כאשר הייתי צריך להזין את %y.

עכשיו נשאלת השאלה מה ההבדל בניהם ? ובכן %y מחזיר את השנה של היום. הפורמט של %g מחזיר את השנה של השבוע. וכאמור מחר זה ה1/1/2009 ולכן הוא החזיר את 09 בתוצאה.

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

2 מחשבות על “אזהרה: באג 2009

  1. ik_5 מאת

    במקרה הספציפי הזה, כתבתי בפרל 😛
    אני מנסה להימנע ממורס ומקריפטוגרפיה כמה שרק אפשר… ולכן אני מעדיף רובי פיתון, פסקל ואם אני כותב את זה ברור, אז גם פרל 🙂

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

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s