โปรแกรมที่เขียนนี้ก็ติดตั้งให้เครื่องลูกค้าไปหลายเครื่องทีเดียว และก็ดูเหมือนไม่มีปัญหาอะไร แต่ปรากฎว่าอาทิตย์ที่แล้ว พี่ที่ทำงานเค้าลอง monitor เครื่องลูกค้าดู ปรากฎว่ามันมี https connection เปิดค้างอยู่มากมายหลายสิบ เลยถามผมว่ามันถูกต้องรึปล่าว ผมเห็นแล้วก็ค่อนข้างอึ้งเล็กน้อย นี่ตรูนู้บขนาดลืมปิด connection เลยเหรอฟระ
แต่หลังจากอ่านโค้ดของตัวเองดู ผมก็เห็นว่าสั่งปิด connection แล้วนี่หน่า แล้วทำไมตรวจสอบ socket ดูถึงยังเห็นมันเปิดค้างอยู่ หลังจากพยายามแก้โค้ดอยู่ซักพักก็ไม่สำเร็จ เลยลองเช็ค bug tracker ของ python ดู ปรากฎว่ามีคนเคยเปิด issue นี้แล้วครับ ตั้งกะ python 2.3 แล้วก็ปิดเป็น won't fix ไปแล้วด้วย (ผมใช้ python 2.6 อยู่ครับ)
อ่านจบตอนนั้นคิดไงไม่รู้อยากลองไล่บั๊กดู (library ของ python มันมีเป็นโค้ดติดตั้งอยู่ในเครื่องอยู่แล้วครับ ไม่ต้องโหลดมาเพิ่ม) ไล่ไปไล่มาก็เจอส่วนที่คิดว่าน่าจะเป็นปัญหา เหมือนว่าจะเช็ค condition ผิด ไปตอนสั่งปิด SSL socket ลองแก้โค้ดดูก็ปรากฎว่าทำงานได้ถูกต้อง (มั้งนะ ฮ่าๆๆ)
พี่ที่ทำงานก็ยุให้ลอง submit patch ไปดู ผมก็เลยลองโหลด python 2.7 มา หลังจากเช็คดูก็เห็นว่าตรงโค้ดส่วนนั้นยังเป็นเหมือนเดิม ผมก็เลยเปิด issue แล้วก็ submit patch ของผมไป แต่หลังจากคุยตอบโต้ไปมาก็มีคนมาบอกว่าให้ผมลอง python 2.7 ดู บั๊กนี้น่าจะโดนแก้ไปแล้ว ซึ่งปรากฎว่ามันก็โดนแก้ไปแล้วจริงๆด้วย ฮ่าๆๆ แต่ก็ไม่รู้ว่าไปแก้อีท่าไหนเหมือนกัน ทำไมโค้ดตรงส่วนที่ผมคิดว่ามันเป็นปัญหาถึงยังเหมือนเดิม เหอๆ
ก็ปรากฎว่า patch ที่ส่งไปก็ปล่าวประโยชน์ T_T
สำหรับ issue ที่ผมเปิดอยากเข้าไปดูก็ไปดูได้ตามลิงค์นี้นะครับ http://bugs.python.org/issue10993
1 comment:
ถ้ามั่นใจว่าโค้ดผิดก็พยายาม reproduce ตามนั้นเร้ยย อย่าไปกลัว
แต่เป็นเรื่องที่ฟังแล้วสนุกจริงๆนะ หือหือหือ
Post a Comment