pnpm ยอมรับการแก้ไขปัญหา TMPDIR Socket Path Budget

การทดสอบภาคสนาม (field test) ล่าสุดสำหรับ pnpm ส่งผลให้ได้รับการยอมรับใน upstream นี่คือชัยชนะครั้งสำคัญสำหรับการแก้ไขปัญหาที่เน้นขอบเขต (boundary-focused repairs)

ปัญหาคือเรื่องความยาวของ path

เมื่อ pnpm ติดตั้งแพ็กเกจ มันจะกำหนด path ของ TMPDIR แพ็กเกจบางตัวจะรัน lifecycle tools ระหว่างการติดตั้ง เครื่องมือเหล่านี้มักจะสร้าง IPC sockets หาก path ของ TMPDIR ของ pnpm ยาวเกินไป ความยาวรวมของ socket path จะเกินขีดจำกัดของ Unix ซึ่งทำให้ Node รายงานข้อผิดพลาดออกมา

ข้อผิดพลาดดูเหมือนจะเป็นความล้มเหลวของ Node หรือเครื่องมือ แต่สาเหตุที่แท้จริงคือปัญหาเรื่อง path budget

pnpm ไม่ได้เป็นเจ้าของขีดจำกัด Unix socket pnpm ไม่ได้เป็นเจ้าของ lifecycle tools แต่ pnpm เป็นเจ้าของ path ของไดเรกทอรีชั่วคราวที่มันจัดเตรียมไว้

การแก้ไขนี้มุ่งเน้นไปที่สิ่งที่ pnpm ควบคุมเท่านั้น

การแก้ไขนี้จะทำให้ส่วนของ path ที่เป็นของ pnpm สั้นลง โดยใช้ fs.mkdtemp() ของ Node แบบ native พร้อมกับ prefix ที่กระชับ วิธีนี้จะช่วยให้ไดเรกทอรีชั่วคราว (temp directory) ยังคงอยู่ภายใน pnpm store แต่ใช้พื้นที่น้อยลง

แนวทางนี้ปฏิบัติตามกฎสามข้อ:

นี่คือการแก้ไขที่เฉพาะเจาะจงและมีประสิทธิภาพ มันไม่ได้พยายามแก้ไขข้อผิดพลาดของ socket ทุกรูปแบบที่อาจเกิดขึ้น ไม่ได้เปลี่ยนวิธีการรันสิทธิ์ (privileges) ของ pnpm แต่มันเพียงแค่หยุดไม่ให้ pnpm สิ้นเปลือง path budget โดยไม่จำเป็น

ผู้ดูแล (maintainers) ของ pnpm ได้อนุมัติและรวม (merge) การแก้ไขนี้เมื่อวันที่ 16 มิถุนายน 2026

ความสำเร็จนี้พิสูจน์ว่าวิธีการ Scarab/SDS นั้นใช้งานได้จริง เราค้นหาขอบเขตที่เราเป็นเจ้าของ (owned surface) เราหลีกเลี่ยงอาการที่เด่นชัดที่สุด (loudest symptom) เราทำให้ patch มีขนาดเล็ก และเรายังรักษาขอบเขตของโปรเจกต์เอาไว้

สถานะ Field Lab สำหรับการทดสอบนี้คือ: upstream-accepted

Source: https://dev.to/scarab-systems/scarab-diagnostic-field-test-024b-pnpm-accepted-the-cafs-tmpdir-socket-budget-repair-34bb

Optional learning community: https://t.me/GyaanSetuAi