initial test version of CTDB clustered Samba available

tridge at samba.org tridge at samba.org
Fri May 4 06:08:07 GMT 2007


Volker,

 > Why did you remove the "return False;" after the first
 > sys_read()? Now we do two reads when select indicated
 > readability. Sure, it is very unlikely we block for a long
 > time there, but the idea was that this routine would not
 > block.

that's why I asked you to look at my changes :-)

The existing routine could not work on a socket that is expected to
get EOF. The caller has no way to know if ctdbd_socket_readable()
returning False means "no more data coming" or "no more just yet". So
we would spin forever in a traverse.

Taking out the return False was a workaround for this. To make it
non-blocking again the function will have to change in some other
way. I thought I'd let you choose what approach you want.

> Just found a real bug: The while loop in line 1600 expects the data
> portion of the message to come in one sys_read call,
> ctdbd_socket_readable returns False if the second sys_read does not
> return the full message. I could imagine that for large records and
> under high load this is not always the case.
>
> Do you want me to fix it?

sure, thanks!

Also, I've now converted notify in s3 to use ctdb. I am still not
propogating the seqnum between nodes, so it should only work fully on
one node, but it isn't working. I also tested with clustering
disabled, and it still fails, so I suspect something deeper is wrong
with notify.

Cheers, Tridge


More information about the samba-technical mailing list