I did find one bug in ubik code... this isn't the complete solution to my
problem, but I figured I'd send this to fix if I'm not confused. This bug
explains the weird symptoms I was seeing with the hosts not getting the
correct lowestHost.

in vote.c around line 208:

    if (!amIClone &&
        (ntohl((afs_uint32) ubik_host) <= ntohl((afs_uint32) lowestHost)
        || lowestTime + BIGTIME < now)) {
        lowestTime = now;
        lowestHost = ubik_host[0];
    }


the comparison is wrong... should be:

    (ntohl((afs_uint32) ubik_host[0]) <= ntohl((afs_uint32) lowestHost)

As it is, you're comparing the ntohl of a pointer to lowestHost, so it's
always updating lowest_host to be ubik_host[0]. (itself)

Once I changed that, the lowestHost calculation is looking much better.
Still not syncing up cause no one is ever sending a yes vote, but I'm still
looking at that. 

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  [EMAIL PROTECTED]
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216
_______________________________________________
OpenAFS-devel mailing list
[EMAIL PROTECTED]
https://lists.openafs.org/mailman/listinfo.cgi/openafs-devel

Reply via email to