Endian Bug

เมื่อสามสี่วันก่อน อัพเดต Firefox 3 Nightly Build ตามปกติ ก็พบกับเรื่องน่าตกใจ นั่นคือ สีเพี้ยน!!!

Firefox 3 Bug 409381

บั๊กแบบนี้ไม่ใช่เรื่องผิดคาด (เพราะคนจะใช้ nightly ต้องทำใจอยู่แล้ว และ nightly ของ Firefox 3 ถือว่าเสถียรมาก) เรื่องการใช้งานก็ไม่เป็นปัญหา (เพราะถอยกลับไปใช้ build ของวันก่อนหน้าได้) แต่สงสัยว่าบั๊กนี้เกิดได้อย่างไร

ไล่หาดูใน Bugzilla ก็เจอ #409391 ปรากฎว่าเกิดกับ build เวอร์ชันที่เป็น PowerPC Mac เท่านั้น สืบสาวต่อไปพบว่าบั๊กต้นเหตุคือ #406580 ซึ่งเป็นแพตช์ใหม่สำหรับ Faster copying of RGB pixel data แต่ปรากฎว่าแพตช์ที่ว่าวาง pixel data ผิด เพราะบน PowerPC เก็บข้อมูลเรียง Endian ไม่เหมือนกับ Intel นั่นเอง

นึกถึงตอนเรียน Computer Architecture ไม่นึกว่าจะได้มาเจอตัวอย่างจริงแบบนี้แฮะ

ผมชอบ comment #17 ที่บอกว่า "As entertaining as this is for about five minutes, we need this fixed ASAP." ความรู้สึกเดียวกันเลย อิอิ

หมายเหตุ: บั๊กนี้ resolved เรียบร้อย

"อะไรที่ดูว่าทำงานได้บนเครื่องเรา ไม่จำเป็นต้องทำงานได้บนเครื่องคนอื่น" :P

ในชั้นเรียน น้องบางคนมักถามทำนอง "มันผิดตรงไหนอ่ะพี่ ก็รันได้ผลลัพธ์เหมือนตัวอย่าง"
เวลาเราไปชี้ว่าโค้ดตรงนี้ ๆ มันผิดอยู่นะ

ในวันที่ 29 เมษายน นี้ จะมีการ Training Endian Firewall สามารถดูรายละเอียดเพิ่มเติมที่เว็บ www.asterisk.co.th

Post new comment

The content of this field is kept private and will not be shown publicly.