Problema
După ce un anumit proiect rulează pe CI-ul meu, virtualbox se blochează în timp ce încearcă să „opriți” VM-ul. vboxmanage list runningvms
nu arată nimic, dar ps axe | grep VBoxHeadless
arată că procesul încă rulează și vboxmanage controlvm <VMName> oprire
aruncări eroare: mașina virtuală este oprită
. Va sta așa la nesfârșit până când voi opri manual procesul.
Detaliile
Eu folosesc executor virtualbox pe o gazdă ubuntu 20.04 pentru a rula o instanță guest Windows 10 pentru CI-ul meu. De cele mai multe ori funcționează minunat, dar unul dintre proiectele mele Python se blochează la sfârșit, cu jurnalul care arată:
Curățarea directorului de proiect și a variabilelor bazate pe fișiere
Am activat jurnalul de depanare pe gitlab-runner și arată:
Se execută VBoxManageOutput: []string{"controlvm", "GLR-runner-XXXXXXXX-concurrent-0", "poweroff"}
VBox.log arată:
************** Sfârșitul stării de oaspete la oprire ***************
Pot vedea, totuși, că procesul VBoxHeadless încă rulează:
$ ps axe | grep VBoxHeadless
324182 ? SLl 5:00 /usr/lib/virtualbox/VBoxHeadless --comment GLR-runner-R2WzVtfH-concurrent-0 --startvm 1a585225-00c3-4099-903c-a82f67f0a404 --vrde config
Niciunul dintre jurnalele nu va arăta altceva până când nu opresc manual procesul, moment în care gitlab-runner va continua așa cum era de așteptat.
Lucruri pe care le-am încercat
- Am făcut upgrade de la VirtualBox 6.1.22 la 6.1.32. Nicio schimbare.
- Am eliminat pasul de testare (tox) din fișierul meu CI și VM-ul se oprește corect, dar deoarece scopul CI este să-mi testeze codul, aceasta nu este o soluție viabilă.
- Acest lucru m-a făcut să bănuiesc că testele au generat procese care nu puteau fi omorâte, dar investigațiile ulterioare au arătat că comanda „poweroff” nu face o oprire soft și se aseamănă mai mult cu utilizarea butonului de pornire pe o mașină fizică.
- Pe acest bilet Am încercat să dezactivez accelerația 3D. Fără noroc.
- Pe acest bilet Am activat paginarea imbricată fără niciun efect.
- Am dezinstalat toate pachetele de extensii. Nimic nu s-a schimbat.
- Am exportat, șters și reimportat VM de bază. Aceeași problemă.
- Am recreat VM-ul de la zero. Aceeași problemă.
Există ceva care îmi lipsește?