[ovs-dev] Use of uninitialized value at testcase OVN 3 HVs, 3 LS, 3 lports/LS, 1 LR

William Tu u9012063 at gmail.com
Tue Apr 12 14:43:56 UTC 2016


Hi Ben,

Yes, this solves the problem! thank you

Regards,
William

On Mon, Apr 11, 2016 at 9:35 AM, Ben Pfaff <blp at ovn.org> wrote:

> 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 = {
>



More information about the dev mailing list