ปัญหา
หลังจากโปรเจ็กต์เฉพาะทำงานบน CI ของฉัน virtualbox จะหยุดทำงานขณะพยายาม 'ปิด' VM vboxmanage รายการที่กำลังทำงาน vms
ไม่แสดงอะไร แต่ ป.ล. ขวาน | grep VBoxHeadless
แสดงว่ากระบวนการยังคงทำงานอยู่ และ vboxmanage controlvm <VMName> ปิดเครื่อง
ขว้าง ข้อผิดพลาด: เครื่องเสมือนกำลังปิดเครื่อง
. มันจะนั่งแบบนี้ไปเรื่อย ๆ จนกว่าฉันจะฆ่ากระบวนการด้วยตนเอง
รายละเอียด
ฉันใช้ ตัวดำเนินการ virtualbox บนโฮสต์ Ubuntu 20.04 เพื่อเรียกใช้อินสแตนซ์แขกของ windows 10 สำหรับ CI ของฉัน เวลาส่วนใหญ่ทำงานได้อย่างน่าอัศจรรย์ แต่หนึ่งในโครงการไพ ธ อนของฉันติดอยู่ที่ส่วนท้ายสุดโดยมีบันทึกแสดง:
การล้างไดเร็กทอรีโครงการและตัวแปรตามไฟล์
ฉันเปิดใช้งานบันทึกการดีบักบน gitlab-runner และมันแสดง:
การดำเนินการ VBoxManageOutput: []string{"controlvm", "GLR-runner-XXXXXXXX-concurrent-0", "poweroff"}
VBox.log แสดง:
************** สิ้นสุดสถานะผู้เยี่ยมชมเมื่อปิดเครื่อง ***************
อย่างไรก็ตาม ฉันเห็นว่ากระบวนการ VBoxHeadless ยังคงทำงานอยู่:
$ ps ขวาน | grep VBoxHeadless
324182 ? SLl 5:00 /usr/lib/virtualbox/VBoxHeadless --comment GLR-runner-R2WzVtfH-concurrent-0 --startvm 1a585225-00c3-4099-903c-a82f67f0a404 --vrde config
ไม่มีบันทึกใดที่จะแสดงอย่างอื่นจนกว่าฉันจะฆ่ากระบวนการด้วยตนเอง ซึ่ง ณ จุดนั้น gitlab-runner จะดำเนินการต่อไปตามที่คาดไว้
สิ่งที่ฉันได้ลอง
- ฉันอัปเกรดจาก VirtualBox 6.1.22 เป็น 6.1.32 ไม่มีการเปลี่ยนแปลง.
- ฉันลบขั้นตอนการทดสอบ (tox) ในไฟล์ CI ของฉันและ VM ปิดตัวลงอย่างถูกต้อง แต่เนื่องจากจุดประสงค์ของ CI คือการทดสอบโค้ดของฉัน นี่ไม่ใช่วิธีแก้ปัญหาที่ใช้ได้
- สิ่งนี้ทำให้ฉันสงสัยว่าการทดสอบเป็นกระบวนการวางไข่ที่ไม่สามารถฆ่าได้ แต่การตรวจสอบเพิ่มเติมพบว่าคำสั่ง 'ปิดเครื่อง' ไม่ได้ทำการปิดระบบแบบนุ่มนวลและคล้ายกับการใช้ปุ่มเปิดปิดบนเครื่องจริงมากกว่า
- ต่อ ตั๋วนี้ ฉันพยายามปิดใช้งานการเร่งความเร็ว 3 มิติ ไม่มีโชค.
- ต่อ ตั๋วนี้ ฉันเปิดใช้งานการเพจที่ซ้อนกันโดยไม่มีผล
- ฉันถอนการติดตั้งชุดส่วนขยายทั้งหมด ไม่มีอะไรเปลี่ยนแปลง
- ฉันส่งออก ลบ และนำเข้า VM พื้นฐานอีกครั้ง ปัญหาเดียวกัน
- ฉันสร้าง VM ใหม่ตั้งแต่เริ่มต้น ปัญหาเดียวกัน.
มีบางอย่างที่ฉันขาดหายไปหรือไม่?