Christopher Browne cbbrowne at ca.afilias.info
Fri Jun 5 14:57:11 PDT 2009
"Oleg A. Mamontov" <oleg at mamontov.net> writes:
> I am using it on FreeBSD systems for moving PostgreSQL databases between
> servers with minimum downtime, all works fine.
> But when I try to setup permanent master-slave schema some problems
> occured.
> Some times (accidentally) master system didn't generate sync events,
> and shutting down
> slon on master systems had long time.
> After debugging session, i found cause of problem (there is two
> problem, Slony and FreeBSD too).
> IMHO there is a logical mistake in slon/scheduler.c, in sched_mainloop
> fdsets copied
> for select before checking connections for their timeouts. In timeout
> case this
> descriptors will be removed with DLLIST_REMOVE and sched_remove_fdset,
> but stayed in
> select descriptors bit vector.
> There is a race condition: scheduler and libpq client polls same file
> descriptor and sometime
> scheduler select discover readable descriptor and lipbq poll blocks
> for infinte time :(
> I tested this on FreeBSD 7.0, trouble repeated in ~60% runs.
> I attach a patch, please, take a look on this code, it seems right,
> imho...

This seems plausible; could you help describe a way to induce the
problem that this solves?

It would be *really* nice to have a test that fails more or less
consistently so that we know that the fix rectifies the problem.
-- 
"cbbrowne","@","ca.afilias.info"
<http://dba2.int.libertyrms.com/>
Christopher Browne
(416) 673-4124 (land)
"Bother,"  said Pooh,  "Eeyore, ready  two photon  torpedoes  and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"


More information about the Slony1-general mailing list