OpenAI Codex CLI เจอบั๊กหนัก เขียน Log ลง SSD ไม่หยุด เสี่ยงทำอายุการใช้งานฮาร์ดดิสก์หมดภายในไม่ถึงปี
เครื่องมือ Codex CLI ของ OpenAI กำลังเผชิญเสียงวิจารณ์อย่างหนัก หลังผู้ใช้งานค้นพบข้อบกพร่องร้ายแรงที่ทำให้โปรแกรมเขียนข้อมูล Log ลงสตอเรจภายในเครื่องอย่างต่อเนื่องในอัตราสูงผิดปกติ โดยมีการประเมินว่าหากปล่อยให้ทำงานตลอดทั้งปี อาจสร้างปริมาณการเขียนข้อมูลสะสมสูงถึง 640 TB ซึ่งมากพอที่จะกินอายุการใช้งานตามสเปกของ SSD ระดับผู้บริโภคจำนวนมาก
จากข้อมูลที่รายงาน เครื่องคอมพิวเตอร์ที่เปิดใช้งานต่อเนื่องเป็นเวลา 21 วัน มีปริมาณการเขียนข้อมูลลง SSD สูงถึงประมาณ 37 TB หากคำนวณเป็นรายปีจะเทียบเท่ากับการเขียนข้อมูลราว 640 TB ต่อปี
ตัวเลขดังกล่าวถือว่าน่ากังวลอย่างมาก เนื่องจาก SSD ขนาด 1TB ระดับผู้บริโภคส่วนใหญ่ในปัจจุบันมักมีค่า TBW (Total Bytes Written) อยู่ที่ประมาณ 600 TB เท่านั้น หมายความว่าหากผู้ใช้เปิด Codex CLI ทำงานต่อเนื่องเป็นเวลานาน อาจทำให้ SSD ใช้งานถึงขีดจำกัดอายุการเขียนข้อมูลเร็วกว่าที่คาดไว้มาก
การวิเคราะห์ทางเทคนิคระบุว่าสาเหตุสำคัญมาจากการตั้งค่าระบบบันทึก Log ที่ใช้ระดับ TRACE ซึ่งเป็นระดับสูงสุดสำหรับการเก็บข้อมูลดีบัก ส่งผลให้โปรแกรมบันทึกข้อมูลแทบทุกกิจกรรมของระบบ ไม่ว่าจะเป็นข้อมูล WebSocket เหตุการณ์ของระบบไฟล์ หรือกระบวนการภายในต่าง ๆ ลงฐานข้อมูลตลอดเวลา
ยิ่งไปกว่านั้น ผู้ใช้ยังไม่สามารถปิดการบันทึก Log ดังกล่าวผ่านตัวแปรสภาพแวดล้อมมาตรฐานอย่าง RUST_LOG ได้ เนื่องจากโปรแกรมไม่ได้อ้างอิงค่าดังกล่าวในการควบคุมระดับการบันทึกข้อมูล
นักพัฒนายังพบว่าปัญหานี้ไม่ได้เกิดจากขนาดไฟล์ Log เพียงอย่างเดียว แต่ยังมีผลกระทบจากปรากฏการณ์ "Write Amplification" ซึ่งฐานข้อมูล SQLite มีการดำเนินการ Insert และ Delete ข้อมูลจำนวนมหาศาลตลอดเวลา ส่งผลให้ปริมาณการเขียนข้อมูลจริงบน SSD สูงกว่าขนาดไฟล์ที่ผู้ใช้มองเห็นอย่างมาก
รายงานระบุว่าข้อมูลกว่า 71% ที่ถูกบันทึกเป็น Log ระดับ TRACE ไม่มีประโยชน์ต่อการวิเคราะห์ปัญหาสำหรับผู้ใช้งานทั่วไป ทำให้เกิดการใช้ทรัพยากรจัดเก็บข้อมูลโดยไม่จำเป็น
แม้ว่าจะมีรายงานข้อผิดพลาดเกี่ยวกับพฤติกรรมการเขียน Log ลักษณะนี้ปรากฏบน GitHub มาตั้งแต่ช่วงเดือนเมษายน และ OpenAI จะเคยปรับปรุงความเสถียรของระบบ SQLite ในอัปเดตบางเวอร์ชันแล้วก็ตาม แต่ปัญหาการเขียนข้อมูลจำนวนมหาศาลยังคงไม่ได้รับการแก้ไขอย่างสมบูรณ์ โดยสถานะ Issue บน GitHub ยังคงเปิดอยู่ในขณะนี้
ในระหว่างที่รอการอัปเดตอย่างเป็นทางการ ผู้เชี่ยวชาญแนะนำให้ผู้ใช้ Linux และ macOS ย้ายไฟล์ logs_2.sqlite ไปยังพื้นที่หน่วยความจำชั่วคราว เช่น /tmp ผ่านการสร้าง Symbolic Link เพื่อลดการเขียนข้อมูลลง SSD โดยตรง
เนื่องจากไฟล์ Log ดังกล่าวไม่ได้เก็บข้อมูลบทสนทนาหรือข้อมูลสำคัญของผู้ใช้ การสูญหายของข้อมูลหลังรีสตาร์ตเครื่องจึงไม่ส่งผลต่อการใช้งาน Codex CLI แต่อย่างใด และถือเป็นแนวทางชั่วคราวที่ช่วยลดความเสี่ยงต่ออายุการใช้งานของ SSD ได้อย่างมีประสิทธิภาพ
ที่มา: HKEPC



