|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] libxl/devd: fix a race with concurrent device addition/removal
Roger Pau Monne writes ("[PATCH 1/2] libxl/devd: fix a race with concurrent
device addition/removal"):
> Current code can free the libxl__device inside of the libxl__ddomain_device
> before the addition has finished if a removal happens while an addition is
> still in process:
>
> backend_watch_callback
> |
> v
> add_device
> | backend_watch_callback
> (async operation) |
> | v
> | remove_device
> | |
> | V
> | device_complete
> | (free libxl__device)
> v
> device_complete
> (deref libxl__device)
>
> Fix this by creating a temporary copy of the libxl__device, that's
> tracked by the GC of the nested async operation. This ensures that
> the libxl__device used by the async operations cannot be freed while
> being used.
Doesn't this arrange that the remove hotplug script will be invoked
while the add hotplug script is still running ? Is that really
desirable (or allowed!) ?
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |