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