XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Windows VMGuest changing network cause the guest to crash

    Scheduled Pinned Locked Moved Xen Orchestra
    14 Posts 6 Posters 873 Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • olivierlambertO Offline
      olivierlambert Vates 🪐 Co-Founder CEO
      last edited by

      Short term solution to reboot the crashed guest: force reboot.

      You might want to try with Citrix PV drivers, to see if you have the same issue (don't forget to clean XCP-ng drivers properly before). We have a new version of the XCP-ng driver coming in the next months, that would be interesting to compare 🙂

      A 1 Reply Last reply Reply Quote 0
      • A Offline
        ashinobi @olivierlambert
        last edited by

        @olivierlambert

        You are right, the issue does not exist when using Citrix drivers. It only happens when using the PV driver.

        1 Reply Last reply Reply Quote 0
        • olivierlambertO Offline
          olivierlambert Vates 🪐 Co-Founder CEO
          last edited by

          Okay so as a workaround, rely on Citrix drivers until we got a new XCP-ng version of the PV drivers 🙂

          1 Reply Last reply Reply Quote 1
          • planedropP Offline
            planedrop Top contributor
            last edited by

            I've had something similar in the past and if I recall correctly I had to go into the guest and disable it's network adapter, then make the change on the host, then re-enable the network adapter in the guest VM.

            Might be worth a shot to see if that solves it.

            I believe with the Citrix drivers though it doesn't happen.

            1 Reply Last reply Reply Quote 0
            • P Offline
              piotrlotr1
              last edited by piotrlotr1

              Apologize again for touching an old topic but we are just testing all things we need from XCP-ng while migrating OFF VMware and it looks like this error still occurs even with Citrix XenTools installed.

              Version we have inside VMs is 9.4.0-146.

              Here is the result of removing network adapter.

              snap_02.PNG clipboard-image-1.png

              Not every time I delete network adapter the issue occur.

              We've tried on different VMs with Windows 2019 and the problem exists.

              1 Reply Last reply Reply Quote 0
              • X Offline
                XCP-ng-JustGreat
                last edited by XCP-ng-JustGreat

                All, Just to let you know that I have observed this same behavior on Windows 11 24H2 with the latest Citrix drivers. After changing the network, the CPU spikes to 100% and the VM becomes unusable. In that case, the only fix is to perform a forced reboot. As others have noted here, sometimes the VM will continue to run okay, but the CPU spike failure happens more often than not.

                P 1 Reply Last reply Reply Quote 0
                • P Offline
                  piotrlotr1 @XCP-ng-JustGreat
                  last edited by

                  @XCP-ng-JustGreat
                  Check mentioned by @planedrop disabling network adapter from devmgmt.msc before removing it from XOA. It works in our case as a workaround but of course the problem is still there.

                  X 1 Reply Last reply Reply Quote 0
                  • X Offline
                    XCP-ng-JustGreat @piotrlotr1
                    last edited by

                    @piotrlotr1 Will definitely use the trick if needed in the future. Normally, changing the network for a running VM is not something we typically need to do. Thanks!

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      piotrlotr1
                      last edited by

                      There is one more thing we've noticed.

                      While CPU are 100% flat, when we trigger migration to different XCP-ng host the task stops at 90% and goes "failure".

                      Here's the code.

                      {
                        "id": "0m9005wjh",
                        "properties": {
                          "method": "vm.migrate",
                          "params": {
                            "vm": "c30f10de-4dfa-e7dd-84dd-3104ed7e1c23",
                            "migrationNetwork": "6dc5b9a9-36dc-ab29-4ad6-80ecbd53b906",
                            "targetHost": "24eacfb2-da63-4e27-aa02-6e5cb774026b"
                          },
                          "name": "API call: vm.migrate",
                          "userId": "612f2ca4-dddf-4d18-96c4-1ce8c57a6383",
                          "type": "api.call"
                        },
                        "start": 1743602926589,
                        "status": "failure",
                        "updatedAt": 1743602977282,
                        "end": 1743602977282,
                        "result": {
                          "code": "INTERNAL_ERROR",
                          "params": [
                            "Xenops_interface.Xenopsd_error(S(Failed_to_acknowledge_suspend_request))"
                          ],
                          "task": {
                            "uuid": "2f0c5622-52a1-f621-bbec-b2cdf1ab07c9",
                            "name_label": "Async.VM.migrate_send",
                            "name_description": "",
                            "allowed_operations": [],
                            "current_operations": {},
                            "created": "20250402T14:08:46Z",
                            "finished": "20250402T14:09:37Z",
                            "status": "failure",
                            "resident_on": "OpaqueRef:d11c5a86-fa0b-7788-3f80-0cb300322d88",
                            "progress": 1,
                            "type": "<none/>",
                            "result": "",
                            "error_info": [
                              "INTERNAL_ERROR",
                              "Xenops_interface.Xenopsd_error(S(Failed_to_acknowledge_suspend_request))"
                            ],
                            "other_config": {},
                            "subtask_of": "OpaqueRef:NULL",
                            "subtasks": [],
                            "backtrace": "(((process xenopsd-xc)(filename ocaml/xenopsd/xc/xenops_server_xen.ml)(line 2561))((process xenopsd-xc)(filename ocaml/xenopsd/xc/domain.ml)(line 1706))((process xenopsd-xc)(filename ocaml/xenopsd/xc/emu_manager.ml)(line 239))((process xenopsd-xc)(filename ocaml/xenopsd/xc/emu_manager.ml)(line 244))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/xenopsd/xc/domain.ml)(line 1840))((process xenopsd-xc)(filename result.ml)(line 23))((process xenopsd-xc)(filename ocaml/xenopsd/xc/domain.ml)(line 1833))((process xenopsd-xc)(filename ocaml/xenopsd/xc/xenops_server_xen.ml)(line 2554))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 1830))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 1838))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 2380))((process xenopsd-xc)(filename list.ml)(line 121))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 2373))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 2746))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/libs/stunnel/stunnel.ml)(line 403))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 2759))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xenopsd-xc)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xenopsd-xc)(filename ocaml/libs/stunnel/stunnel.ml)(line 403))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 2657))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 1830))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 1838))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 3185))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 3195))((process xenopsd-xc)(filename ocaml/xenopsd/lib/xenops_server.ml)(line 3215))((process xenopsd-xc)(filename ocaml/xapi-idl/lib/task_server.ml)(line 194))((process xapi)(filename ocaml/xapi/xapi_xenops.ml)(line 3387))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xapi)(filename ocaml/xapi/xapi_xenops.ml)(line 3555))((process xapi)(filename ocaml/xapi/xapi_vm_migrate.ml)(line 264))((process xapi)(filename ocaml/xapi/xapi_vm_migrate.ml)(line 270))((process xapi)(filename ocaml/xapi/xapi_vm_migrate.ml)(line 295))((process xapi)(filename ocaml/xapi/xapi_vm_migrate.ml)(line 1551))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xapi)(filename ocaml/xapi/xapi_vm_migrate.ml)(line 1714))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xapi)(filename ocaml/xapi/message_forwarding.ml)(line 143))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 24))((process xapi)(filename ocaml/libs/xapi-stdext/lib/xapi-stdext-pervasives/pervasiveext.ml)(line 39))((process xapi)(filename ocaml/xapi/message_forwarding.ml)(line 2591))((process xapi)(filename ocaml/xapi/rbac.ml)(line 191))((process xapi)(filename ocaml/xapi/rbac.ml)(line 200))((process xapi)(filename ocaml/xapi/server_helpers.ml)(line 75)))"
                          },
                          "message": "INTERNAL_ERROR(Xenops_interface.Xenopsd_error(S(Failed_to_acknowledge_suspend_request)))",
                          "name": "XapiError",
                          "stack": "XapiError: INTERNAL_ERROR(Xenops_interface.Xenopsd_error(S(Failed_to_acknowledge_suspend_request)))\n    at Function.wrap (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/_XapiError.mjs:16:12)\n    at default (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/_getTaskResult.mjs:13:29)\n    at Xapi._addRecordToCache (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/index.mjs:1072:24)\n    at file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/index.mjs:1106:14\n    at Array.forEach (<anonymous>)\n    at Xapi._processEvents (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/index.mjs:1096:12)\n    at Xapi._watchEvents (file:///usr/local/lib/node_modules/xo-server/node_modules/xen-api/index.mjs:1269:14)"
                        }
                      }
                      

                      Maybe Devs will get something out of it : - /

                      1 Reply Last reply Reply Quote 0
                      • olivierlambertO Offline
                        olivierlambert Vates 🪐 Co-Founder CEO
                        last edited by

                        This is because the VM is likely too busy to migrate memory pages fast enough vs what's newly written.

                        1 Reply Last reply Reply Quote 0
                        • olivierlambertO Offline
                          olivierlambert Vates 🪐 Co-Founder CEO
                          last edited by

                          Adding @dinhngtu in the loop

                          1 Reply Last reply Reply Quote 0
                          • D Offline
                            dinhngtu Vates 🪐 XCP-ng Team
                            last edited by

                            This is a driver bug that we fixed in XCP-ng Windows tools v9.0.9030 but hasn't been integrated by Citrix yet. You can try it out if you're not running a production system.

                            olivierlambertO 1 Reply Last reply Reply Quote 3
                            • olivierlambertO Offline
                              olivierlambert Vates 🪐 Co-Founder CEO @dinhngtu
                              last edited by

                              @dinhngtu said in Windows VMGuest changing network cause the guest to crash:

                              This is a driver bug that we fixed in XCP-ng Windows tools v9.0.9030 but hasn't been integrated by Citrix yet. You can try it out if you're not running a production system.

                              Gosh, we are now officially faster than Citrix to detect and fix bugs even in the Windows PV driver 🤓

                              1 Reply Last reply Reply Quote 1
                              • First post
                                Last post