simplest test case to reproduce the problem. It triggers the leak very
quickly and without running cluster on top. Plain corosync will show the
problem.

gcc -Wall -o test ipctest.c -lconfdb

Fabio

Fabio M. Di Nitto wrote:
> Hi guys,
> 
> this is the setup:
> 
> 2 nodes cluster, one x86 and x86_64.
> 
> running corosync/trunk, openais 1.1.0, cluster-3.0.5 on top of F12.
> 
> startup cman, clvmd, rgmanager and mount a gfs2 partition (pretty much
> basic testing really).
> 
> rgmanager is running one VIP service. Nothing fancy here either.
> 
> running corosync/flatiron 1.1.2 everything is OK.
> 
> Swap corosync 1.1.2 with trunk, there is a memory leak in corosync
> executive.
> 
> The leak seems to follow this pattern:
> 
> - it always occurs on the node that is running the VIP service
> (rgmanager is running on both nodes).
> 
> - the timing of the leak is "fixed". On startup, the first node that
> gets the service will start leaking every 40 to 50 seconds (I measured
> 40secs in a run and 49secs in another run and it´s constant once it
> starts leaking). Relocate the service to the other node. The node that
> gets the service will start leaking but exactly at half of the speed of
> the other node (so every 80 to 100 seconds).
> 
> - the size of leak varies depending on the architecture. x86_64 seems
> constantly leaking 144 bytes. x86 varies from 128 to 144 bytes on each leak.
> 
> valgrind output that I posted already yesterday doesn´t show any leak.
> It means the memory is allocated, referenced, but for some reasons not
> freed.
> 
> Fabio
> _______________________________________________
> Openais mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/openais

#include <errno.h>
#include <limits.h>
#include <corosync/corotypes.h>
#include <corosync/confdb.h>

/* Callbacks are not supported - we will use them to update fullxml doc/ctx */
static confdb_callbacks_t callbacks = {
};

int main()
{
        int loop = 1000000, counter = 0;

        while (loop > counter)
        {
                confdb_handle_t handle = 0;

                if (confdb_initialize(&handle, &callbacks) != CS_OK)
                        return -1;


                if (confdb_finalize(handle) != CS_OK)
                        return -2;

                counter++;
        }

        return 0;
}
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to