[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#6413) Race replicating syncrepl config

Full_Name: Rein Tollevik
Version: CVS head
OS: Solaris
Submission from: (NULL) (
Submitted by: rein

There is a race condition when the syncrepl config in cn=config is initialized
in a MMR configuration.  Seen by test050, but so far only on Solaris10 x86_64.

The problem appear to be that a do_syncrepl task can be added to the thread
queue while syncrepl_config is deleting it.  It removes any tasks already in the
queue, but the main loop in daemon.c is still running when the thread processing
have been paused and can add new tasks to the thread queue from its runqueue.

A patch is coming. An alternative fix may be to stop processing the runqueue
when threading is paused.  That may still leave the possibility of a task being
added to the thread queue as a result of syncrepl input, although I haven't seen
that happen.

Rein Tollevik
Basefarm AS