This adds the following option to configure:
--enable-small-memory-footprint
When enabled the following defines are set
to reduce the overall memory footprint.
MESSAGE_SIZE_MAX=1024*64
MESSAGE_QUEUE_MAX=512
PROCESSOR_COUNT_MAX=16
IPC_REQUEST_SIZE=1024*64
IPC_RESPONSE_SIZE=1024*64
IPC_DISPATCH_SIZE=1024*64
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2410 fd59a12c-fef9-0310-b244-a6a79926bd2f
Currently totemip_copy (boundto,&ipaddr) is called even when the
required mask is not found.
This patch changes the behavior to only copy the ipaddr when the
mask is found.
The current behavior makes debugging an incorrect config really
confusing.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2409 fd59a12c-fef9-0310-b244-a6a79926bd2f
In logsys there are a number of XYZ_unlocked() functions that are called
like this:
pthread_mutex_lock (&logsys_config_mutex);
XYZ_unlocked();
pthread_mutex_unlock (&logsys_config_mutex);
The XYZ_unlocked() functions should not do any (un)locking.
But _logsys_config_subsys_get_unlocked() unlocks if it finds the subsys.
This means that there is 1 lock and 2 unlocks.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2404 fd59a12c-fef9-0310-b244-a6a79926bd2f
This functions allows iterate available cpg groups
and their members. API is modelled like ckpt iteration
functions.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2399 fd59a12c-fef9-0310-b244-a6a79926bd2f
Attached patches handle NULL callbacks in *_initialize
and *_dispatch. Handling is same as in quorum service. Now, when
callback is NULL -> no memcpy -> instance callbacks will have all
items set to NULL and in *_dispatch function is not called.
It changes cfg so now we are using continue instead of exit.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2392 fd59a12c-fef9-0310-b244-a6a79926bd2f
Sometimes, when object_key_get doesn't return found_service_ver it
doesn't change old value and this value is then used in atoi what
will can cause fall of corosync. Patch fixes this case by setting
found_service_ver to NULL before call of object_key_get.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2391 fd59a12c-fef9-0310-b244-a6a79926bd2f
to allow startup wrappers (such as cman_tool) to collect
as much errors as possible in case of startup failure
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2385 fd59a12c-fef9-0310-b244-a6a79926bd2f
logsys thread priority was configured after forking the
wthread process and spread the scheduler priority config
across a large chunk of code in main.c
Now that logsys scheduler priority can be invoked at any time,
move the code together with corosync_setscheduler code.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2383 fd59a12c-fef9-0310-b244-a6a79926bd2f
logsys_thread_priority_set expects that wthread is already running
but doesn't perform any check if it is.
if logsys_thread_priority_set is invoked before forking the thread,
a segfault is guaranteed.
this changes to logsys_thread_priority_set ensure that a request
for a new scheduler priority is queued if the wthread is not
created yet and the new scheduler parameters are applied as early
as possible after the thread is created.
At the same time:
- add a few comments on clean up that needs to be done
- remove a redundant check for policy != SCHED_OTHER as that's
corosync need specific. logsys should simply accept the request
and apply it.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2382 fd59a12c-fef9-0310-b244-a6a79926bd2f
This can be usefull for easier way to get informations
of the corosync version from users. Version and SVN
revision (get by svninfo -c) are displayed.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2381 fd59a12c-fef9-0310-b244-a6a79926bd2f
reload_notifications callbacks. This allows callback functions to
manipulate the notifications list without causing corruption or strange
loops.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2380 fd59a12c-fef9-0310-b244-a6a79926bd2f
On some systems clock_gettime is not available so we are
testing availability and value of _POSIX_MONOTONIC_CLOCK.
On system without support of clock_gettime, we are using
old behaviour with function gettimeofday.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2376 fd59a12c-fef9-0310-b244-a6a79926bd2f
In case user not enter ver: in service section, whole
corosync falled with segfaul, because atoi was called
on NULL.
Now, in case of NULL, we rather not use atoi, and
return 0 directly.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2370 fd59a12c-fef9-0310-b244-a6a79926bd2f
This patch is very similar to uidgid.d patch, but support for loading
services (so read service section).
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2368 fd59a12c-fef9-0310-b244-a6a79926bd2f
The root of the theoretical problem is that cpg_join or cpg_leave
messages are being sent via the C apis between synchronization. With
the current cpg, synchronization happens in confchg_fn, and then later
in cpg_sync_process. cpg_sync_process is called much later after
confchg_fn and introduces a small probability of a window of time for
queued in totem (but not yet ordered by totem) for those cpg_join and
cpg_leave operations to interact with the synchronization process which
should happen in one atomic operation but currently is two distinct
operations.
This patch deletes confchg_fn and make sends joinlist/downlist
in cpg_sync_process.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2365 fd59a12c-fef9-0310-b244-a6a79926bd2f
This patch allows only one connection per (node, pid, grp_name) tuple.
This means, you cannot make more connection from one process to same
group_name. This is (I hope) how cpg should behave. In case, you will
try to do that, CPG_ERR_EXISTS error is returned.
Of course, there is no problem with creating:
- more connection with same (pid, grp) if nodeid is different
- more connection with same (node, grp) if pid is different (for example
after fork, or two distinct processes)
- more connection with same (node, pid) if grp is different (connect
one process to more cpgs).
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2364 fd59a12c-fef9-0310-b244-a6a79926bd2f