Tuesday, January 23, 2007

Bug ข้าม Application

วันนี้ระบบที่ deploy production เกิดทำงานผิดผลาดขึ้นมา
ลูกค้าแจ้งว่า วันที่ที่แสดงในหลายๆหน้าจอ แสดงวันที่ผิดปี
ยุ่งหล่ะสิ ระบบนี้ไม่ใช่พึ่งใช้งานด้วย ใช้งานมาไม่ต่ำกว่า 2 เดือนแล้ว
โชคดีที่มี fallback, ระบบสำรอง ก็เลยปิดระบบใหม่บังคับให้ user ไปใช้ระบบเก่าไปก่อน

หลังจากนั่นค้นหา changeset ว่าเมื่อคืน มีใคร deploy อะไรใหม่ๆลงไปบ้าง,
ทดสอบระบบที่ test server, ทดสอบระบบที่เครื่องตัวเอง
กว่าจะหาสาเหตุเจอ ก็ผ่านไป 4 ชั่วโมง

สาเหตุนั้นน่าสนใจมาก ตรงประเด็นที่ว่า
เรามักจะมี assumption ว่า bug เกิดที่ระบบใด ส่วนที่ผิด ก็ควรจะอยู่ในระบบนั้น
แต่ bug ตัวนี้ดันเกิดจาก application อีกตัว ที่พึ่ง deploy ขึ้นไปเมื่อวาน
ภายในมัน set locale ให้เป็น "th"
โชคร้ายที่ application เก่า เรามี assumption ในการเขียนว่า
locale เป็น "en"
เมื่อ deploy บน virtual machine เดียวกัน ก็เลย conflict กัน

Related link from Roti

No comments: