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

[PATCH for-4.17 v2] tools/ocaml/xenstored: fix live update exception


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Edwin Török <edvin.torok@xxxxxxxxxx>
  • Date: Fri, 21 Oct 2022 08:59:25 +0100
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Edwin Török <edvin.torok@xxxxxxxxxx>, "Christian Lindig" <christian.lindig@xxxxxxxxxx>, Henry Wang <Henry.Wang@xxxxxxx>
  • Delivery-date: Fri, 21 Oct 2022 08:00:08 +0000
  • Ironport-data: A9a23:VfVbwa2KyFaG8jTI9PbD5d9xkn2cJEfYwER7XKvMYLTBsI5bp2AHn 2BJUWqOPv2LNjOgcoh2OY3goBwGupCGnNM3GQs+pC1hF35El5HIVI+TRqvS04F+DeWYFR46s J9OAjXkBJppJpMJjk71atANlVEliefSAOKU5NfsYkhZXRVjRDoqlSVtkus4hp8AqdWiCkaGt MiaT/f3YTdJ4BYpdDNJg06/gEk35q6r4GlB5gVWic1j5zcyqVFEVPrzGonpR5fIatE8NvK3Q e/F0Ia48gvxl/v6Ior4+lpTWhRiro/6ZWBiuFIPM0SRqkEqShgJ+rQ6LJIhhXJ/0F1lqTzTJ OJl7vRcQS9xVkHFdX90vxNwS0mSNoUekFPLzOTWXWV+ACQqflO1q8iCAn3aMqUZ5MttH2diz sBfB2tWQRGDuKH10umkH7wEasQLdKEHPasas3BkizrYEewnUdbIRKCiCd1whWlqwJoURLCHO pRfOWEHgBfoOnWjPn8aBIw/mqG0gWP4cBVTqU6PpLpx6G/WpOB0+Oi2aoOJI4HaLSlTtn6Wt kf3/FjePgATDPrAlwrV2XiswdaayEsXX6pNTeblp5aGmma75mEVEgxQalK9rtGwkEv4UNVaQ 2QE9yxroaUs+UiDStjmQwb+sHOCpgQbWddbD6s98g7l90bPy1/HXC5eFGcHMYF48p9tLdA36 rOXt9L3KCZxtpGudTWyrey7rDONemsHdnBXMEfoUjA5y9XkpYgyiDfGQdBiDLO5g7XJJN3g/ 9yZhHNg3utO1Kbnw43+pAma2Gz0+vAlWyZvvm3qsnSZAhSVjWJPT6ih8hDl4PlJN+51pXHR7 SFfy6ByAA3jZKxhdRBhos1XR9lFBN7falUwZGKD+bF4qFxBHFbzFb28GBkkeC9U3j8sIFcFm nP7twJL/4N0N3C3d6JxaI/ZI510k/a6TYi/BqmPNoomjn1NmOmvpnoGiam4hjqFraTRuftnZ cfznTiEUR729piLPBLpHrxAgNfHNwg1xH/JRICT8ilLJYG2PSbPIZ9caQPmRrlgsMu5TPD9r o832z2ikE4EDoUTo0D/rOYuELz9BSdiXs2r9pwOK4Zu4GNOQQkcNhMY+pt5E6QNokifvr2gE q2VMqOA9GfCuA==
  • Ironport-hdrordr: A9a23:fnInNqE30+vEZuKppLqE5MeALOsnbusQ8zAXP0AYc3Jom6uj5q eTdZUgpHvJYVkqOE3I9ertBEDiewK4yXcW2/hzAV7KZmCP0wHEEGgL1/qF/9SKIUzDH4Bmup uIC5IOauHNMQ==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

During live update we will load the /tool/xenstored path from the previous 
binary,
and then try to mkdir /tool again which will fail with EEXIST.
Check for existence of the path before creating it.

The write call to /tool/xenstored should not need any changes
(and we do want to overwrite any previous path, in case it changed).

Prior to 7110192b1df6 live update would work only if the binary path was
specified, and with 7110192b1df6 and this live update also works when
no binary path is specified in `xenstore-control live-update`.

Fixes: 7110192b1df6 ("tools/oxenstored: Fix Oxenstored Live Update")
Signed-off-by: Edwin Török <edvin.torok@xxxxxxxxxx>
Acked-by: Christian Lindig <christian.lindig@xxxxxxxxxx>
Release-acked-by: Henry Wang <Henry.Wang@xxxxxxx>
---
 tools/ocaml/xenstored/xenstored.ml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/ocaml/xenstored/xenstored.ml 
b/tools/ocaml/xenstored/xenstored.ml
index fc90fcdeb5..acc7290627 100644
--- a/tools/ocaml/xenstored/xenstored.ml
+++ b/tools/ocaml/xenstored/xenstored.ml
@@ -353,7 +353,9 @@ let _ =
        ) in
 
        (* required for xenstore-control to detect availability of live-update 
*)
-       Store.mkdir store Perms.Connection.full_rights (Store.Path.of_string 
"/tool");
+       let tool_path = Store.Path.of_string "/tool" in
+       if not (Store.path_exists store tool_path) then
+               Store.mkdir store Perms.Connection.full_rights tool_path;
        Store.write store Perms.Connection.full_rights
                (Store.Path.of_string "/tool/xenstored") Sys.executable_name;
 

base-commit: 0c06760be3dc3f286015e18c4b1d1694e55da026
-- 
2.34.1




 


Rackspace

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