[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xenvif non-zero byte assertion error during teardown


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, win-pv-devel <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Mon, 6 Jul 2026 06:53:54 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jidKypVPvSW8UQp/dqS1msqYSFUEPssR6DWC2s2krMQ=; b=JZruQDb3a18qHLHggBSRhBNTsCfveDrXvY/GK5TmgyTnCxG7TuRiygBTKIEaUmdstyKDkh7Gcu+bsDGP6kwnsGiR9Em1gy3mpBQvvOxwwTPk99lVHYrdK4VLHIO9JS3fx06Azr14Bk1T46CcSsLSxntfL7jAytoW8KXn5oLJNju27zVMWZusbuirmWmIIbSXEmXJ408JwT52Ax3c5VOOZeBMCgHAXMMsYocrXAICypthte8IobClNoKYKl2QRBK7eE6ZOmoC/NnPvHGv7D6hDjeg8oikmFhQDblwg7IgZkxWHL+etFtJwdmVyMkyLG3fzOoZb949Shi8PWGo8QXM7w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U1aMZTcxQg41ZZwt+xhxgwywRa7w96jTexmi/OR6l6WMVulIvikgf9ZPpXC/hiSBZUG6nVnF78Un4KqSYFF5gn3B0v0GN+hY1w3+Jr8/CGebxfs7qwn94uiGat49mevmqvYrsMU2JSlhagI2jTCxg9tfOh4/TVB0sXacm3ZD43oREGnIqWPn9sqNKfCuouLsfswgCx+ntYx5heX/7tIjc5ojv7YJVKos8QiAxvknwZVRlBHstw2SAJmabByjXvBzWKaG9gf+l8bHDSlMQY+/rmtjs4sXdbkWg0pBjyRJx3vB79+MYU7cHdajg+qIB/BKGmIpzSb03Yx5wm0hHdM25A==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Mon, 06 Jul 2026 06:54:07 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHdCyKA258DbLHUTUmH48f68vRb2LZgEZv0
  • Thread-topic: Xenvif non-zero byte assertion error during teardown

Hi,

Does this imply that something has written to these padding bytes?

_XENVIF_FRONTEND is allocated and zeroed with RtlZeroMemory - so all bytes
should be 0 initially. Nothing should access these padding bytes directly, so 
the
ASSERT should be valid

Owen

________________________________________
From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> on behalf of Tu 
Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 03 July 2026 8:30 PM
To: win-pv-devel
Subject: Xenvif non-zero byte assertion error during teardown

Hello,

It's possible for xenvif to hit an assertion error during teardown due
to non-zero bytes in the _XENVIF_FRONTEND struct:

xenvif|_IsZeroMemory: FrontendTeardown: non-zero byte in Frontend
(0xFFFF84857C8D6AD0+0x64)
xenvif|FrontendTeardown: ASSERTION FAILED: _IsZeroMemory(__FSTREXP
__FUNCTION__  , "Frontend", (Frontend), (sizeof (XENVIF_FRONTEND)))

0x64 belongs to padding area:

0:000> dt xenvif!_XENVIF_FRONTEND
    +0x000 Pdo              : Ptr64 _XENVIF_PDO
    +0x008 Path             : Ptr64 Char
    +0x010 Prefix           : Ptr64 Char
    +0x018 State            : _XENVIF_FRONTEND_STATE
    +0x01c Online           : UChar
    +0x020 Lock             : Uint8B
    +0x028 EjectThread      : Ptr64 _XENVIF_THREAD
    +0x030 EjectEvent       : _KEVENT
    +0x048 BackendPath      : Ptr64 Char
    +0x050 BackendDomain    : Uint2B
    +0x054 MaxQueues        : Uint4B
    +0x058 NumQueues        : Uint4B
    +0x05c Split            : UChar
    +0x060 DisableToeplitz  : Uint4B
    +0x068 Mac              : Ptr64 _XENVIF_MAC
    +0x070 Receiver         : Ptr64 _XENVIF_RECEIVER
    +0x078 Transmitter      : Ptr64 _XENVIF_TRANSMITTER
    +0x080 Controller       : Ptr64 _XENVIF_CONTROLLER
    +0x088 DebugInterface   : _XENBUS_DEBUG_INTERFACE_V1
    +0x0d8 SuspendInterface : _XENBUS_SUSPEND_INTERFACE_V1
    +0x128 StoreInterface   : _XENBUS_STORE_INTERFACE_V2
    +0x1b0 SuspendCallbackEarly : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1b8 SuspendCallbackLate : Ptr64 _XENBUS_SUSPEND_CALLBACK
    +0x1c0 DebugCallback    : Ptr64 _XENBUS_DEBUG_CALLBACK
    +0x1c8 Watch            : Ptr64 _XENBUS_STORE_WATCH
    +0x1d0 Statistics       : Ptr64 _XENVIF_FRONTEND_STATISTICS
    +0x1d8 StatisticsCount  : Uint4B
    +0x1e0 MibThread        : Ptr64 _XENVIF_THREAD
    +0x1e8 Alias            : [257] Char
    +0x2ec InterfaceIndex   : Uint4B
    +0x2f0 AddressTable     : Ptr64 _SOCKADDR_INET
    +0x2f8 AddressCount     : Uint4B
    +0x2fc Hash             : _XENVIF_FRONTEND_HASH

struct _XENVIF_FRONTEND (and likely other structs) are in general full
of similar padding. So the ASSERT(IsZeroMemory(Frontend)) check is too
strict in most cases.

I think current IsZeroMemory asserts should either be removed or
converted to a print-only warning.


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.