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

[Xen-devel] [PATCH] Fix ocaml build in 4.1; problem with 4.1.6 release

(CC to xen-devel added)

Ian Jackson writes ("Problem with 4.1.6 release"):
> Jan Beulich writes ("please sign-and-tag 4.2.3 and 4.1.6"):
> > Ian - could you also create tarballs as usual?
> The 4.1.6 tarball failed its build test.  This is due to an actual
> build failure in 4.1.6.  See below.  This is probably a result of
> 070ab4c505934951f86f42dd8403cf62bc5822f0 "oxenstored: Protect
> oxenstored from malicious domains".

Now confirmed by a local rebuild with 070ab4 reverted.
Possible fix below.  This builds but I haven't tested it.

> It appears that when I backported this change I this change from 4.2.x
> to 4.1.x, I cannot have done a build test :-/.  (I have upgraded my
> workstation in between but the error doesn't seem likely to be due to
> a compiler version change.)
> The backport to 4.2.x involved conflicts, which I fixed up, and did do
> a build test for so it looks like I resolved the conflict correctly.
> The 4.1.x backport (of the 4.2.x patch) didn't involve textual
> conflicts but it seems to have a semantic conflict.
> The osstest testing system doesn't install ocaml compilers, because
> that makes it use oxenstored by default and the last time I attempted
> to do this it produced regressions.  So the push gate didn't catch
> this problem.
> I have already made and pushed a signed tag for 4.1.6.  That suggests
> that we should abandon the 4.1.6 version number, in favour of
> maybe.
> We also have to decide what to do with the code.  We shouldn't really
> simply revert this fix, which is security-relevant.
> CC the authors of the patch which when backported became 070ab4c50593,
> and Andrew Cooper who knows something about this code.
> Ian.
> make[5]: Entering directory `/u/iwj/work/xen.git/tools/ocaml/xenstored'
>  MLI      symbol.cmi
>  MLI      trie.cmi
>  MLOPT    define.cmx
>  MLOPT    stdext.cmx
>  MLOPT    trie.cmx
>  MLOPT    config.cmx
>  MLOPT    logging.cmx
> File "logging.ml", line 113, characters 3-4:
> Warning 11: this match case is unused.
>  MLOPT    quota.cmx
>  MLOPT    perms.cmx
>  MLOPT    symbol.cmx
>  MLOPT    utils.cmx
>  MLOPT    store.cmx
>  MLOPT    disk.cmx
>  MLOPT    transaction.cmx
>  MLOPT    event.cmx
>  MLOPT    domain.cmx
>  MLOPT    domains.cmx
>  MLOPT    connection.cmx
>  MLOPT    connections.cmx
>  MLOPT    parse_arg.cmx
>  MLOPT    process.cmx
> File "process.ml", line 375, characters 3-8:
> Error: Unbound value error

commit 7e792ffe54adc2d9fcc210baa8140f210a841c31
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date:   Mon Sep 9 15:30:42 2013 +0100

    oxenstored: Fix process.ml build after 070ab4c50593
    This change:
      "oxenstored: Protect oxenstored from malicious domains"
    broke the build because it had an unresolved semantic (but not
    textual) conflict with
      "tools/ocaml: Remove log library from tools/ocaml/libs"
    (which is in 4.2 but not 4.1)
    Fix this by using the 4.1.x idiom in the new error handling introduced
    in 070ab4c50593.
    Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>

diff --git a/tools/ocaml/xenstored/process.ml b/tools/ocaml/xenstored/process.ml
index bd87646..5c81755 100644
--- a/tools/ocaml/xenstored/process.ml
+++ b/tools/ocaml/xenstored/process.ml
@@ -372,8 +372,8 @@ let do_input store cons doms con =
                        Connection.do_input con
                with Failure exp ->
-                       error "caught exception %s" exp;
-                       error "got a bad client %s" (sprintf "%-8s" 
(Connection.get_domstr con));
+                       Logs.error "general" "caught exception %s" exp;
+                       Logs.error "general" "got a bad client %s" (sprintf 
"%-8s" (Connection.get_domstr con));
                        Connection.mark_as_bad con;

Xen-devel mailing list



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