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

Re: Xen 4.18 release: Reminder about code freeze



On Mon, 25 Sep 2023, Henry Wang wrote:
> 3. dom0less vs xenstored setup race Was: xen | Failed pipeline for staging | 
> 6a47ba2f
> 
> https://marc.info/?l=xen-devel&m=168312468808977
> 
> https://marc.info/?l=xen-devel&m=168312687610283

For this issue I suggest to go with this fix unless someone can produce
a better fix before RC2. I don't think we should cut RC2 with this issue
unsolved.

---
[PATCH] xenstored: reset domain connection before XENSTORE_CONNECTED

From: Julien Grall <julien@xxxxxxx>

xenstored will set interface->connection to XENSTORE_CONNECTED before
finalizing the connection which can cause initialization errors on the
guest side. Make sure to call domain_conn_reset(domain) before setting
XENSTORE_CONNECTED.

Signed-off-by: Julien Grall <julien@xxxxxxx>
[stefano: rebase, commit message]
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxx>
Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index a6cd199fdc..9cd6678015 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -989,6 +989,7 @@ static struct domain *introduce_domain(const void *ctx,
                talloc_steal(domain->conn, domain);
 
                if (!restore) {
+                       domain_conn_reset(domain);
                        /* Notify the domain that xenstore is available */
                        interface->connection = XENSTORE_CONNECTED;
                        xenevtchn_notify(xce_handle, domain->port);
@@ -1031,8 +1032,6 @@ int do_introduce(const void *ctx, struct connection *conn,
        if (!domain)
                return errno;
 
-       domain_conn_reset(domain);
-
        send_ack(conn, XS_INTRODUCE);
 
        return 0;



 


Rackspace

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