在stream浪销毁期间VBOX_E_FILE_ERROR

(有趣的是,我得到了一个与virtualbox有关的popup消息,在阅读完之后: 在什么情况下VirtualBox问题应该放在主题上?我决定在这里发表我的问题。)

背景信息:

  • 我们使用Jenkins部署到我们的testing环境,该环境是一个使用Vagrant 1.8.1和VirtualBox 5.0.16的Windows 2012服务器。
  • 设置testing环境涉及使用Vagrant自动启动VirtualBox虚拟机
  • 对于每个新的部署,我们卸载以前的安装,这涉及到运行vagrant destroy来卸载虚拟机。

问题:

间歇性地从Jenkins自动部署期间执行vagrant destroy时,命令失败,并显示以下错误消息:

 Progress state: VBOX_E_FILE_ERROR VBoxManage.exe: error: Machine delete failed VBoxManage.exe: error: Could not delete the medium storage unit 'BLAH.vmdk' (VERR_SHARING_VIOLATION) VBoxManage.exe: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleUnregisterVM(struct HandlerArg *)" at line 163 of file VBoxManageMisc.cpp 

Jenkins总是使用相同的用户访问Windows从站,这当然有Admin访问权限。

另一个令人费解的部分是,如果我们像Jenkins一样使用用户手动login到Windows服务器,并且手动执行vagrant destroy ,那么问题总是可以被复制。

题:

究竟是什么导致VBOX_E_FILE_ERROR? 我怎么能到这个底部?