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

Re: [Xen-devel] [PATCH 4/8] oxenstored: catch the error when a connection is already deleted



On 15 Sep 2014, at 23:39, Zheng Li <dev@xxxxxxxx> wrote:

> The function process_fdset_with is called on the read set connections first.
> During the process, it might destroy a connection and remove it from the
> connections database if some errors occur. However, a reference to the same
> connection might still exist in the write set, which is awaiting to be
> processed next. In this case, a Not_found error will be raised and the process
> is aborted.

Good catch! This might explain the occasional mysterious xenstored 
disappearance...

> 
> This patch changes the logic to ignore connections just missing from the
> connection database and continue the rest part of the work.
> 
> Signed-off-by: Zheng Li <dev@xxxxxxxx>
> ---
> tools/ocaml/xenstored/xenstored.ml | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/ocaml/xenstored/xenstored.ml 
> b/tools/ocaml/xenstored/xenstored.ml
> index dacea21..ea1a08f 100644
> --- a/tools/ocaml/xenstored/xenstored.ml
> +++ b/tools/ocaml/xenstored/xenstored.ml
> @@ -43,8 +43,11 @@ let process_connection_fds store cons domains rset wset =
>                       debug "closing socket connection"
>               in
>       let process_fdset_with fds fct =
> -             List.iter (fun fd -> try_fct fct (Connections.find cons fd)) fds
> -     in
> +             List.iter
> +                     (fun fd ->
> +                      try try_fct fct (Connections.find cons fd)
> +                      with Not_found -> ()
> +                     ) fds in
>       process_fdset_with rset Process.do_input;
>       process_fdset_with wset Process.do_output
> 
> -- 
> 2.1.0
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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