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 <jul...@xen.org> 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 <jul...@xen.org> [stefano: rebase, commit message] Signed-off-by: Stefano Stabellini <stefano.stabell...@amd.com> Acked-by: Stefano Stabellini <sstabell...@kernel.org> 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;