[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 03/15] libxl: properly lock userdata store
On Thu, 2014-09-04 at 23:43 +0100, Wei Liu wrote: > Originally libxl user data store didn't have lock at all. There could be > such race condition as mentioned by Ian Jackson: > > Task 1 Task 2 > Creating the domain Trying to shut down > > actually create domain > observe domid > start domain destruction > delete all userdata > destroy domain > store the userdata > *** forbidden state created: userdata exists but domain doesn't > *** userdata has been leaked > [ would now bomb out ] > > This patch adds in proper locking to libxl user data store. The lock is > associated with a specific domain (i.e. a per-domain lock). > > As for locking hierachy, we first take CTX lock (which is implemented > with pthread recursive mutex so even if the application has taken it > we're fine), then take the file lock. These locks are released in > reversed order. > > A new libxl error code ERROR_LOCK_FAIL is introduced to describe failure > to acquire locks. > > Also factor out libxl__userdata_{retrieve,store}, so that other > functions that already hold the lock can call them to manipulate > user data. > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |