Murder mupdate questions ...

Brasseur Valéry Valery.Brasseur at atosorigin.com
Tue Feb 27 09:28:11 EST 2007


Hi,

In mupdate-client.c, in function mupdate_scarf

There is lines like (around line 450) :

   if(ch == EOF && errno == EAGAIN) {
                /* this was just "no input" we return 0 */
                goto done;
            } else if(ch == EOF) {
                /* this was a fatal error */
                r = MUPDATE_NOCONN;
                goto done;
            } else {

>From gdb stepping and strace it seems that the errno is never set to EAGAIN... 
And so the slave think about a fatal error closing the connection when it's only 
A timeout ...

3466  lseek(8, 806172, SEEK_SET)        = 806172
3466  writev(8, [{"\0\0\0\4", 4}, {"\0\fL\304", 4}, {"\0\0\0\2", 4}, {"\0\0\0\20", 4}, {"user.testmurder4", 16}, {"\0\0\0-", 4},
 {"1 data01-cyrus!parta testmurder4\tlrswipkxtea\t", 45}, {"\0\0\0", 3}, {"\0\f\31\364", 4}, {"\377\377\377\377", 4}], 10) = 92
3466  fdatasync(8)                      = 0
3466  lseek(8, 806264, SEEK_SET)        = 806264
3466  write(8, "\0\0\0\377", 4)         = 4
3466  fdatasync(8)                      = 0
3466  fcntl64(8, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
3466  time(NULL)                        = 1172585959
3466  select(10, [9], NULL, NULL, {0, 0}) = 0 (Timeout)
3466  time(NULL)                        = 1172585959
3466  close(10)                         = 0
3466  shutdown(9, 0 /* receive */)      = 0
3466  close(9)                          = 0
3466  time([1172585959])                = 1172585959

Is it normal ? Any ideas where it could be ?

Thanks




More information about the Cyrus-devel mailing list