在 ESXI 6 上运行的 Red Hat Enterprise Linux 6 或 7 虚拟机发生故障并出现 VMCISock 错误
book
Article ID: 301181
calendar_today
Updated On:
Products
VMware vSphere ESXi
Issue/Introduction
Symptoms:
免责声明: 本文为
Red Hat Enterprise Linux 6 or 7 virtual machine running on ESXI 6 fails with VMCISock errors (2142110) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。
- 在 ESXI 6 上运行的 Red Hat Enterprise Linux 6 或 7 虚拟机发生故障
- 虚拟机发生故障并出现 VMCISock 错误
- 您看到类似如下所示的堆栈跟踪:
RHEL 6:
<stacktrace>
[<ffffffff8105e646>] ? enqueue_task+0x66/0x80
[<ffffffff8105e683>] activate_task+0x23/0x30
[<ffffffff810670c0>] try_to_wake_up+0x1f0/0x3e0
[<ffffffff810672c2>] default_wake_function+0x12/0x20
[<ffffffff81059939>] __wake_up_common+0x59/0x90
[<ffffffff8105e168>] __wake_up+0x48/0x70
[<ffffffffa0148e40>] ? vmci_event_unsubscribe+0x114/0x154 [vmci]
[<ffffffffa0148e64>] vmci_event_unsubscribe+0x138/0x154 [vmci]
[<ffffffffa013f992>] VMCI_WaitOnEventInterruptible+0x7e/0xc0 [vmci]
[<ffffffff810672b0>] ? default_wake_function+0x0/0x20
[<ffffffff8107fe48>] ? irq_exit+0x48/0x90
[<ffffffffa0148da8>] vmci_event_unsubscribe+0x7c/0x154 [vmci]
[<ffffffffa017db60>] VMCISock_KernelDeregister+0x54c/0x704 [vsock]
[<ffffffff8145b303>] __sk_free+0x23/0x170
[<ffffffff8145b4d5>] sk_free+0x25/0x30
[<ffffffffa0180411>] VSockVmciAllowDgram+0x1e11/0x2e44 [vsock]
[<ffffffffa0145759>] ? VMCIHashTable_GetEntry+0xa5/0xb8 [vmci]
[<ffffffffa0142130>] VMCIDatagram_InvokeGuestHandler+0xf0/0x1cc [vmci]
[<ffffffffa0141ce7>] VMCI_ReadDatagramsFromPort+0xd3/0x158 [vmci]
[<ffffffff810804e5>] tasklet_action+0xe5/0x120
[<ffffffff8107ffd1>] __do_softirq+0xc1/0x1e0
[<ffffffff810ed980>] ? handle_IRQ_event+0x60/0x170
[<ffffffff8100c38c>] call_softirq+0x1c/0x30
[<ffffffff8100fbd5>] do_softirq+0x65/0xa0
[<ffffffff8107fe85>] irq_exit+0x85/0x90
[<ffffffff815424e5>] do_IRQ+0x75/0xf0
[<ffffffff8100ba53>] ret_from_intr+0x0/0x11
<EOI>
[<ffffffff8104301b>] ? native_safe_halt+0xb/0x10
[<ffffffff810167ed>] default_idle+0x4d/0xb0
[<ffffffff81009fe6>] cpu_idle+0xb6/0x110
[<ffffffff81531932>] start_secondary+0x2c0/0x316
</Stacktrace>
RHEL 7:
<Stacktrace>
[201414.815949] <IRQ> [<ffffffff815e19ba>] dump_stack+0x19/0x1b
[201414.815961] [<ffffffff815dbfe9>] __schedule_bug+0x4d/0x5b
[201414.815966] [<ffffffff815e718b>] __schedule+0x78b/0x790
[201414.815970] [<ffffffff815e71b9>] schedule+0x29/0x70
[201414.815975] [<ffffffff815e50b9>] schedule_timeout+0x209/0x2d0
[201414.815981] [<ffffffff8108ec58>] ? __wake_up_common+0x58/0x90
[201414.815985] [<ffffffff81090a24>] ? __wake_up+0x44/0x50
[201414.815990] [<ffffffff815e76e6>] wait_for_completion+0x116/0x170
[201414.815995] [<ffffffff81097700>] ? wake_up_state+0x20/0x20
[201414.816001] [<ffffffff810ff6a0>] ? __call_rcu+0x2c0/0x2c0
[201414.816008] [<ffffffff810826ab>] wait_rcu_gp+0x5b/0x80
[201414.816012] [<ffffffff81082630>] ? ftrace_raw_output_rcu_utilization+0x50/0x50
[201414.816016] [<ffffffff8108ec58>] ? __wake_up_common+0x58/0x90
[201414.816020] [<ffffffff810fef5b>] synchronize_sched+0x3b/0x50
[201414.816027] [<ffffffffa031a9d0>] vmci_event_unsubscribe+0x70/0xb0 [vmw_vmci]
[201414.816032] [<ffffffffa032f611>] vmci_transport_destruct+0x21/0xe0
[vmw_vsock_vmci_transport]
[201414.816037] [<ffffffffa03a0867>] vsock_sk_destruct+0x17/0x60 [vsock]
[201414.816044] [<ffffffff814bb73f>] __sk_free+0x1f/0x170
[201414.816048] [<ffffffff814bb8b1>] sk_free+0x21/0x30
[201414.816052] [<ffffffffa03302bb>] vmci_transport_recv_stream_cb+0x1fb/0x2e0
[vmw_vsock_vmci_transport]
[201414.816058] [<ffffffff810bd9a4>] ? tick_program_event+0x24/0x30
[201414.816063] [<ffffffffa0319f1c>] vmci_datagram_invoke_guest_handler+0xbc/0xf0
[vmw_vmci]
[201414.816069] [<ffffffffa031ae6f>] vmci_dispatch_dgs+0xcf/0x230 [vmw_vmci]
[201414.816075] [<ffffffff81066eae>] tasklet_action+0x6e/0x110
</Stacktrace>
注意: 此日志摘要是一个示例。 日期、时间和环境变量可能会因环境而有所不同。
Environment
VMware vSphere ESXi 6.0
Cause
当虚拟机通信接口运行不正确的调用并返回 NULL 指针时,将出现此问题。
Resolution
这是一个影响 ESXi 6.0 的已知问题。解决此问题的方法如下:
Red Hat Enterprise Linux 6:
Red Hat Enterprise Linux 7:
对于 RHEL 7 操作系统,要解决这一问题,请将 Red Hat 内核更新到如下版本:
- 对于RHEL7.3,该问题已在 kernel-3.10.0-514.el7 中得到解决
- 对于RHEL7.2z,该问题已在 kernel-3.10.0-327.10.1.el7 中得到解决
- 对于RHEL7.1z,该问题已在 kernel-3.10.0-229.28.1.el7 中得到解决
要临时解决此问题,请禁用 VMCI 驱动程序:
- 关闭虚拟机电源。
- 使用 SSH 连接到运行虚拟机的 ESXi 主机。 有关详细信息,请参见 Using ESXi Shell in ESXi 5.x and 6.0 (2004746)。
- 导航到虚拟机 .vmx 文件的位置。
cd /vmfs/volumes/datatore/virtual_machine/
- 使用纯文本编辑器打开 virtual_machine.vmx 文件。
vi virtual_machine.vmx
- 将 vmci.present 设置为 false 并向其他行添加 #:
例如:
vmci0.present = "FALSE"
#vmci0.pciSlotNumber = "32"
#vmci0.id = "1868206774"
- 保存并关闭该文件。
- 打开虚拟机电源。
Feedback
thumb_up
Yes
thumb_down
No