From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Scott Subject: Re: [PATCH] Fix ocaml build in 4.1; problem with 4.1.6 release Date: Mon, 9 Sep 2013 17:23:33 +0100 Message-ID: <522DF605.5040004@eu.citrix.com> References: <522DDC1E02000078000F17B6@nat28.tlf.novell.com> <522DCF85.8060301@xen.org> <21037.55681.508096.627734@mariner.uk.xensource.com> <21037.56470.837995.51813@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <21037.56470.837995.51813@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Jackson Cc: Keir Fraser , Andrew Cooper , xen-devel@lists.xen.org, lars.kurth@xen.org, Jan Beulich , John Liu List-Id: xen-devel@lists.xenproject.org On 09/09/13 15:35, Ian Jackson wrote: > (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 4.1.6.1 >> 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 > Date: Mon Sep 9 15:30:42 2013 +0100 > > oxenstored: Fix process.ml build after 070ab4c50593 > > This change: > 070ab4c505934951f86f42dd8403cf62bc5822f0 > "oxenstored: Protect oxenstored from malicious domains" > broke the build because it had an unresolved semantic (but not > textual) conflict with > c69fddbd5dfa3004aaf2d0f2dde00c9ec3dd6d5d > "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 > > 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 = > try > 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; > false > in This looks good to me: Acked-by: David Scott Cheers, Dave