[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Long delays caused by rpcinfo



Thanks for the reply.  Unfortunately, it looks like rpcbind is not the culprit.  I verified that rpcbind installed and running:

root@test-vm-1:~# ps -ef | grep bind
root      1538     1  0 11:23 ?        00:00:00 /sbin/rpcbind -w
root     28002  2289  0 15:17 pts/0    00:00:00 grep bind

I restarted the rpcbind service just to make sure...

root@test-vm-1:~# service rpcbind stop
[ ok ] Stopping rpcbind daemon....
root@test-vm-1:~# ps -ef | grep bind
root     28227  2289  0 15:18 pts/0    00:00:00 grep bind
root@test-vm-1:~# service rpcbind start
[ ok ] Starting rpcbind daemon....
root@test-vm-1:~# ps -ef | grep bind
root     28254     1  0 15:18 ?        00:00:00 /sbin/rpcbind -w
root     28288  2289  0 15:18 pts/0    00:00:00 grep bind

... but the problem persisted:

root@test-vm-1:~# rpcinfo -p localhost
<LONG PAUSE>
rpcinfo: can't contact portmapper: RPC: Remote system error - Connection timed out

Anything else I can look into?  FWIW, an strace shows that rpcbind gets stuck when trying to connect to a socket on the loopback interface.  The relevant portion of the strace output is below:

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
getsockname(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
bind(3, {sa_family=AF_INET, sin_port=htons(944), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(944), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
getsockopt(3, SOL_SOCKET, SO_TYPE, [1], [4]) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfa4cfb000
getpeername(3, 0x7fff62295d00, [128])   = -1 ENOTCONN (Transport endpoint is not connected)
connect(3, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ETIMEDOUT (Connection timed out)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(3)                                = 0
write(2, "rpcinfo: can't contact portmappe"..., 83rpcinfo: can't contact portmapper: RPC: Remote system error - Connection timed out
) = 83
exit_group(1)

The long pause happens after this call:

    connect(3, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, 16)

Which eventually results in "= -1 ETIMEDOUT (Connection timed out)" and moves on.

As always, any help will be greatly appreciated!

    - Dave


On Tue, Sep 24, 2013 at 3:02 PM, Bob Proulx <bob@proulx.com> wrote:
David Parker wrote:
> I have confirmed that rpc.statd is running, which I believe is the port
> mapper in newer distributions.

AFAIK rpc.statd is not a portmapper replacement.  The two portmapper
equivalents that I am aware of are:

  portmap - RPC port mapper
  rpcbind - converts RPC program numbers into universal addresses

The 'portmap' package is the older one.  I think in newer releases it
has been replaced with 'rpcbind'.  I don't know what is different
between them.

Try installing rpcbind.  I think that will solve your problem.

Bob



--
Dave Parker
Systems Administrator
Utica College
Integrated Information Technology Services
(315) 792-3229
Registered Linux User #408177

Reply to: