Hello,

I installed different version of bird on Ubuntu 16.04 (namely, 1.5.0, 1.6.3, 1.6.4).
After leaving the daemon running for ~1 hour, the memory used by the
host is over 8Gib. However, when running `birdc show memory`, I get
the following:

        BIRD memory usage
        Routing tables:     21 kB
        Route attributes:   11 kB
        ROA tables:        192  B
        Protocols:          22 kB
        Total:             102 kB

My config is pretty basic (edited, see attached) as we have 2 BGP
protocols using 2 ASN (one public, one private), each exporting the
routes learnt from the other.

The leak seems to be related to the traffic going through the server,
as the memory of the host remains still when there is no traffic
going on. It is triggered by bird though, because I don't have the
leak when the routes are configured statically and bird is shut down.

The weird thing about this is that the memory is not used by the bird
process itself. It's shown as used memory by the host, but no process
is actually using this memory.
I know that it's leaking because of bird though because it's the only
process installed and running on this host.

Has anyone ever encountered such a behavior, or can see an issue in
my configuration?

Thanks in advance for your help
--
Willy
router id 1.2.3.4

define ASPUB = 12345;
define ASPRV = 4200000000;

filter private_in
prefix set private_networks;
{
        private_networks = [ 1.1.1.0/24+, 2.2.2.0/24+ ];

        if (net ~ private_networks) then accept;
        reject;
}

filter public_in
prefix set public_networks;
{
        public_networks = [ 3.3.0.0/16+, 0.0.0.0/0 ];

        if (net ~ public_networks) then accept;
        reject;
}

filter private_out
prefix set private_networks;
{
        private_networks = [ 0.0.0.0/0 ];

        if (source = RTS_BGP && net ~ private_networks) then accept;
        reject;
}

filter public_out
prefix set public_networks;
{
        public_networks = [ 1.1.1.0/24+, 2.2.2.0/24+ ];

        bgp_path.empty;
        bgp_path.prepend(ASPUB);
        if (source = RTS_BGP && net ~ public_networks) then accept;
        reject;
}

protocol kernel {
        scan time 5;
        import none;
        export all;
}

protocol device {
        scan time 10;
}

protocol bgp public {
        local as ASPUB;
        neighbor 1.2.3.5 as 54321;
        next hop self;

        export filter public_out;
        import filter public_in;
};

protocol bgp private {
        local as ASPRV;
        neighbor 10.11.12.13 as 4200000001;
        next hop self;

        export filter private_out;
        import filter private_in;
};

Reply via email to