Hi, Harsh:I make some break in glusterd , and can gdb the qemu-kvm forked from libvirtd.
break in glusterd:
(gdb) i bNum Type Disp Enb Address What1 breakpoint keep y 0x00007f903ef1a0a0 in server_getspec at glusterd-handshake.c:1222 breakpoint keep y 0x00000034f4607070 in rpcsvc_program_actor at rpcsvc.c:137breakpoint already hit 2 times3 breakpoint keep y 0x00007f903ef199f0 in glusterd_set_clnt_mgmt_program at glusterd-handshake.c:3594 breakpoint keep y 0x00007f903ef1a0a0 in server_getspec at glusterd-handshake.c:122
in rpcsvc_handle_rpc_call fun, it call rpcsvc_program_actor and return right.(gdb) p *actor$13 = {procname = "GETSPEC", '\000' <repeats 24 times>, procnum = 2, actor = 0x7f903ef1a0a0 <server_getspec>, vector_sizer = 0, unprivileged = _gf_false}
but inif (0 == svc->allow_insecure && unprivileged && !actor->unprivileged) {
/* Non-privileged user, fail request */
gf_log ("glusterd", GF_LOG_ERROR,
"Request received from non-"
"privileged port. Failing request");
rpcsvc_request_destroy (req);
return -1;
}so the server_getspec on server not be called, which cause qemu-kvm progress failed.
my question:1.(0 == svc->allow_insecure && unprivileged && !actor->unprivileged) which one wrong here ?
Best Regards,Yin Yin