[ovs-build] Fixed: ovn-org/ovn#134 (master - 49cc555)

Travis CI builds at travis-ci.org
Fri Mar 6 23:29:08 UTC 2020

Build Update for ovn-org/ovn

Build: #134
Status: Fixed

Duration: 16 mins and 49 secs
Commit: 49cc555 (master)
Author: Damijan Skvarc
Message: logical-fields: fix memory leak caused by initialize ovnfield_by_name twice

ovnfield_by_name is hash of strings which is used to quickly find
field by name. This hash is initialized from ovn_init_symtab(). In case
the latter function is called multiple times then also ovnfield_by_name is
initialized multiple times but without freeing previously allocated
memory resources what cause memory leaks.  This actually happens in
ovn-controller which calls ovn_init_symtab() function twice, once from
ofctrl.c and the other time from lflow.c files.

Problem was solved by initializing ovnfield_by_name entity only once
and using design pattern from stopwatch.c or meta_flow.c files (ovs).

Problem was reported by valgrind with flood of messages (190) while executing
ovn test suite:

    ==5999== 47 (32 direct, 15 indirect) bytes in 1 blocks are definitely lost in loss record 86 of 102
    ==5999==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==5999==    by 0x50635D: xmalloc (util.c:138)
    ==5999==    by 0x4F6513: shash_add_nocopy__ (shash.c:109)
    ==5999==    by 0x4F6585: shash_add_nocopy (shash.c:121)
    ==5999==    by 0x4F65BD: shash_add (shash.c:129)
    ==5999==    by 0x4F6602: shash_add_once (shash.c:136)
    ==5999==    by 0x4395B7: ovn_init_symtab (logical-fields.c:261)
    ==5999==    by 0x406C91: main (ovn-controller.c:1750)

Signed-off-by: Damijan Skvarc <damjan.skvarc at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>

View the changeset: https://github.com/ovn-org/ovn/compare/c8d28de41ee6...49cc555eda96

View the full build log and details: https://travis-ci.org/ovn-org/ovn/builds/659373346?utm_medium=notification&utm_source=email


You can unsubscribe from build emails from the ovn-org/ovn repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=24187664&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20200306/5cb0e499/attachment-0001.html>

More information about the build mailing list