On Wed, Apr 06, 2016 at 01:01:45PM -0700, William Tu wrote: > Hi, > > Valgrind reports "Conditional jump or move depends on uninitialised > value(s)" on test case 2019, "ovn.at:1229 ovn -- 3 HVs, 3 LS, 3 lports/LS, > 1 LR". I have no clue about how to fix this error. Any comments are > appreciated. > > At the end of the message, valgrind reports "Uninitialised value was > created by a stack allocation at 0x4404A0: xlate_actions > (ofproto-dpif-xlate.c:5061)". So I suspect that due to deep call stacks > caused by xlate_recursively(), maybe the stack size is not enough. So I > increase stack size to 512MB but still the same. > > If you want to try, make valgrind more verbose by adding > VALGRIND = valgrind --log-file=valgrind.%p --leak-check=full \ > --track-origins=yes \ > --suppressions=$(abs_top_srcdir)/tests/glibc.supp \ > --suppressions=$(abs_top_srcdir)/tests/openssl.supp --num-callers=80
I think I see the problem. Before I post a full fix, would you mind verifying that the following also avoids the valgrind warnings for you? diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index a02dc24..010e9c7 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -5076,6 +5076,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout) uint64_t action_set_stub[1024 / 8]; uint64_t frozen_actions_stub[1024 / 8]; struct flow_wildcards scratch_wc; + memset(&scratch_wc, 0, sizeof scratch_wc); uint64_t actions_stub[256 / 8]; struct ofpbuf scratch_actions = OFPBUF_STUB_INITIALIZER(actions_stub); struct xlate_ctx ctx = { _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev