Bug 172511

Summary: RSH Pauses for ~1 second while executing
Product: [Fedora] Fedora Reporter: Mike Poublon <michael.poublon>
Component: rshAssignee: Karel Zak <kzak>
Status: CLOSED NOTABUG QA Contact: Ben Levenson <benl>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: tim
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-03-27 20:18:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mike Poublon 2005-11-05 19:05:15 UTC
Description of problem:
When executing 
# rsh hostname uptime

from one computer to another, Rsh pauses for approxamately 1 second

Version-Release number of selected component (if applicable):
rsh-0.17-29

How reproducible:
Every time

Steps to Reproduce:
1. rsh to a computer
  
Actual results:
rsh connects but takes approxamately 1 second.

Expected results:
rsh has been much faster in the past

Additional info:
strace output of the connection attempt:

# strace -tt rsh fischer01 uptime
14:02:21.375943 execve("/usr/bin/rsh", ["rsh", "fischer01", "uptime"], [/* 24 
vars */]) = 0
14:02:21.376898 brk(0)                  = 0x8089000
14:02:21.377150 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f77000
14:02:21.377436 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file 
or directory)
14:02:21.377702 open("/etc/ld.so.cache", O_RDONLY) = 3
14:02:21.377884 fstat64(3, {st_mode=S_IFREG|0644, st_size=76266, ...}) = 0
14:02:21.378084 old_mmap(NULL, 76266, PROT_READ, MAP_PRIVATE, 3, 0) = 
0xb7f64000
14:02:21.378244 close(3)                = 0
14:02:21.378439 open("/lib/libcrypt.so.1", O_RDONLY) = 3
14:02:21.378613 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3607
\312"..., 512) = 512
14:02:21.378964 fstat64(3, {st_mode=S_IFREG|0755, st_size=27660, ...}) = 0
14:02:21.379232 old_mmap(NULL, 184604, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xd91000
14:02:21.379428 old_mmap(0xd96000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xd96000
14:02:21.379664 old_mmap(0xd98000, 155932, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xd98000
14:02:21.379845 close(3)                = 0
14:02:21.380017 open("/lib/libutil.so.1", O_RDONLY) = 3
14:02:21.380190 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260
\354"..., 512) = 512
14:02:21.380361 fstat64(3, {st_mode=S_IFREG|0755, st_size=15080, ...}) = 0
14:02:21.380536 old_mmap(NULL, 12432, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x806000
14:02:21.380897 old_mmap(0x808000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x808000
14:02:21.381180 close(3)                = 0
14:02:21.381374 open("/lib/libc.so.6", O_RDONLY) = 3
14:02:21.381551 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\nO 
\000"..., 512) = 512
14:02:21.381715 fstat64(3, {st_mode=S_IFREG|0755, st_size=1489572, ...}) = 0
14:02:21.381959 old_mmap(NULL, 1219548, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x61e000
14:02:21.382150 old_mmap(0x742000, 16384, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x124000) = 0x742000
14:02:21.382340 old_mmap(0x746000, 7132, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x746000
14:02:21.382518 close(3)                = 0
14:02:21.382681 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f63000
14:02:21.382852 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f639e0, 
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, 
seg_not_present:0, useable:1}) = 0
14:02:21.383281 mprotect(0x742000, 8192, PROT_READ) = 0
14:02:21.383466 mprotect(0x808000, 4096, PROT_READ) = 0
14:02:21.383610 mprotect(0xd96000, 4096, PROT_READ) = 0
14:02:21.383761 mprotect(0x12b000, 4096, PROT_READ) = 0
14:02:21.383898 munmap(0xb7f64000, 76266) = 0
14:02:21.384124 getuid32()              = 0
14:02:21.384323 brk(0)                  = 0x8089000
14:02:21.384697 brk(0x80aa000)          = 0x80aa000
14:02:21.384942 socket(PF_FILE, SOCK_STREAM, 0) = 3
14:02:21.385188 fcntl64(3, F_GETFL)     = 0x2 (flags O_RDWR)
14:02:21.385355 fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
14:02:21.385495 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 
110) = 0
14:02:21.385770 poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, 
revents=POLLOUT}], 1, 5000) = 1
14:02:21.385933 writev(3, [{"\2\0\0\0\v\0\0\0\7\0\0\0", 12}, {"passwd\0", 7}], 
2) = 19
14:02:21.386181 poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, 
revents=POLLIN|POLLHUP}], 1, 5000) = 1
14:02:21.386347 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"passwd\0", 7}], 
msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, 
{4}}, msg_flags=0}, MSG_NOSIGNAL) = 7
14:02:21.386537 fstat64(4, {st_mode=S_IFREG|0600, st_size=217016, ...}) = 0
14:02:21.386719 pread(4, "\1\0\0\0h\0\0\0t(\224\277\1\0\0\0 \376lC\0\0\0\0\323
\0"..., 104, 0) = 104
14:02:21.386900 mmap2(NULL, 217016, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f2e000
14:02:21.387065 close(4)                = 0
14:02:21.387194 close(3)                = 0
14:02:21.387520 open("/etc/nsswitch.conf", O_RDONLY) = 3
14:02:21.387738 fstat64(3, {st_mode=S_IFREG|0644, st_size=1686, ...}) = 0
14:02:21.387918 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2d000
14:02:21.388116 read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1686
14:02:21.388327 read(3, "", 4096)       = 0
14:02:21.388535 close(3)                = 0
14:02:21.388785 munmap(0xb7f2d000, 4096) = 0
14:02:21.389109 open("/etc/ld.so.cache", O_RDONLY) = 3
14:02:21.389346 fstat64(3, {st_mode=S_IFREG|0644, st_size=76266, ...}) = 0
14:02:21.389549 old_mmap(NULL, 76266, PROT_READ, MAP_PRIVATE, 3, 0) = 
0xb7f1b000
14:02:21.389707 close(3)                = 0
14:02:21.389854 open("/lib/libnss_files.so.2", O_RDONLY) = 3
14:02:21.390091 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \33\0
\000"..., 512) = 512
14:02:21.390278 fstat64(3, {st_mode=S_IFREG|0755, st_size=46552, ...}) = 0
14:02:21.390465 old_mmap(NULL, 41616, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48e000
14:02:21.390633 old_mmap(0x497000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x497000
14:02:21.390829 close(3)                = 0
14:02:21.391024 mprotect(0x497000, 4096, PROT_READ) = 0
14:02:21.391339 munmap(0xb7f1b000, 76266) = 0
14:02:21.391508 open("/etc/services", O_RDONLY) = 3
14:02:21.391671 fcntl64(3, F_GETFD)     = 0
14:02:21.391804 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
14:02:21.391939 fstat64(3, {st_mode=S_IFREG|0644, st_size=20385, ...}) = 0
14:02:21.392129 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2d000
14:02:21.392269 read(3, "# /etc/services:\n# $Id: services"..., 4096) = 4096
14:02:21.392530 read(3, "otocol\nntp\t\t123/tcp\nntp\t\t123/udp"..., 4096) = 
4096
14:02:21.392753 read(3, "67/udp\nrsync\t\t873/tcp\t\t\t\t# rsync"..., 4096) = 
4096
14:02:21.392918 close(3)                = 0
14:02:21.393060 munmap(0xb7f2d000, 4096) = 0
14:02:21.393208 getpid()                = 28847
14:02:21.393375 gettimeofday({1131217341, 393444}, NULL) = 0
14:02:21.393521 open("/etc/resolv.conf", O_RDONLY) = 3
14:02:21.393670 fstat64(3, {st_mode=S_IFREG|0644, st_size=45, ...}) = 0
14:02:21.393895 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2d000
14:02:21.394050 read(3, "search chem.hope.edu\nnameserver "..., 4096) = 45
14:02:21.394234 read(3, "", 4096)       = 0
14:02:21.394402 close(3)                = 0
14:02:21.394536 munmap(0xb7f2d000, 4096) = 0
14:02:21.394725 socket(PF_FILE, SOCK_STREAM, 0) = 3
14:02:21.394947 fcntl64(3, F_GETFL)     = 0x2 (flags O_RDWR)
14:02:21.395100 fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
14:02:21.395239 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 
110) = 0
14:02:21.395474 poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, 
revents=POLLOUT}], 1, 5000) = 1
14:02:21.395621 writev(3, [{"\2\0\0\0\r\0\0\0\6\0\0\0", 12}, {"hosts\0", 6}], 
2) = 18
14:02:21.395889 poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, 
revents=POLLIN|POLLHUP}], 1, 5000) = 1
14:02:21.396134 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"hosts\0", 6}], 
msg_controllen=16, {cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, 
{4}}, msg_flags=0}, MSG_NOSIGNAL) = 6
14:02:21.396319 fstat64(4, {st_mode=S_IFREG|0600, st_size=217016, ...}) = 0
14:02:21.396492 pread(4, "\1\0\0\0h\0\0\0t(\224\277\1\0\0\0 \376lC\0\0\0\0\323
\0"..., 104, 0) = 104
14:02:21.396671 mmap2(NULL, 217016, PROT_READ, MAP_SHARED, 4, 0) = 0xb7ef9000
14:02:21.396814 close(4)                = 0
14:02:21.396939 close(3)                = 0
14:02:21.397154 rt_sigprocmask(SIG_BLOCK, [URG], [], 8) = 0
14:02:21.397391 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
14:02:21.397551 bind(3, {sa_family=AF_INET, sin_port=htons(1023), 
sin_addr=inet_addr("0.0.0.0")}, 16) = 0
14:02:21.397751 fcntl64(3, F_SETOWN, 28847) = 0
14:02:21.397886 connect(3, {sa_family=AF_INET, sin_port=htons(514), 
sin_addr=inet_addr("192.168.1.101")}, 16) = 0
14:02:21.398338 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
14:02:21.398499 bind(4, {sa_family=AF_INET, sin_port=htons(1022), 
sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)
14:02:21.399338 bind(4, {sa_family=AF_INET, sin_port=htons(1021), 
sin_addr=inet_addr("0.0.0.0")}, 16) = 0
14:02:21.399840 listen(4, 1)            = 0
14:02:21.400137 write(3, "1021\0", 5)   = 5
14:02:21.400335 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN, 
revents=POLLIN}], 2, -1) = 1
14:02:21.407801 accept(4, {sa_family=AF_INET, sin_port=htons(1022), 
sin_addr=inet_addr("192.168.1.101")}, [16]) = 5
14:02:21.408111 close(4)                = 0
14:02:21.408335 writev(3, [{"root\0", 5}, {"root\0", 5}, {"uptime\0", 7}], 3) 
= 17
14:02:21.408604 read(3, "\0", 1)        = 1
14:02:22.334164 rt_sigprocmask(SIG_SETMASK, [], [URG], 8) = 0
14:02:22.334426 setuid32(0)             = 0
14:02:22.334592 rt_sigprocmask(SIG_BLOCK, [INT QUIT TERM], [], 8) = 0
14:02:22.334746 rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
14:02:22.334922 rt_sigaction(SIGINT, {0x19acf4, [INT], SA_RESTART}, {SIG_IGN}, 
8) = 0
14:02:22.335192 rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
14:02:22.335411 rt_sigaction(SIGQUIT, {0x19acf4, [QUIT], SA_RESTART}, 
{SIG_IGN}, 8) = 0
14:02:22.335596 rt_sigaction(SIGTERM, {SIG_IGN}, {SIG_DFL}, 8) = 0
14:02:22.335745 rt_sigaction(SIGTERM, {0x19acf4, [TERM], SA_RESTART}, 
{SIG_IGN}, 8) = 0
14:02:22.335922 clone(child_stack=0, 
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0xb7f63a28) = 28849
14:02:22.336392 ioctl(5, FIONBIO, [1])  = 0
14:02:22.336565 ioctl(3, FIONBIO, [1])  = 0
14:02:22.336858 rt_sigprocmask(SIG_SETMASK, [], [INT QUIT TERM], 8) = 0
14:02:22.337098 select(6, [3 5], NULL, NULL, NULL) = 1 (in [3])
14:02:22.371763 read(3, " 14:02:22 up 5 days, 57 min,  1 "..., 8192) = 70
14:02:22.372079 write(1, " 14:02:22 up 5 days, 57 min,  1 "..., 70 14:02:22 up 
5 days, 57 min,  1 user,  load average: 0.00, 0.00, 0.00
) = 70
14:02:22.372367 select(6, [3 5], NULL, NULL, NULL) = 2 (in [3 5])
14:02:22.372536 read(5, "", 8192)       = 0
14:02:22.372667 read(3, "", 8192)       = 0
14:02:22.372888 kill(28849, SIGKILL)    = 0
14:02:22.373224 exit_group(0)           = ?

the pause happens on the line:
14:02:21.408604 read(3, "\0", 1)

The hosts are part of a compute cluster and have been set up to allow rsh 
without a password between all the nodes.

Comment 1 tim 2006-01-12 20:37:37 UTC
I have the same issue using this for a computational cluster. We have a redhat9 
cluster that runs commands with ~0.040s round trip execution, while the straces 
on Fedora Core 4 show a definite 0.5s-0.9s delay when the socket is opened. I 
have also attempted to use ssh as an alternative (with keys and fast ciphers) 
and see similar delays when the socket is opened to write and retrieve data.

This is new to Fedora, as it was not a problem in RH9.

Comment 2 Mike Poublon 2006-01-12 21:37:52 UTC
I used yum to update the systems to the latest at the time and the issue went 
away.

Comment 3 tim 2006-01-12 22:31:27 UTC
If `yum update` resolves the issue, can the QA/Developers confirm what package 
or packages must be upgraded to resolve this issue? 

Comment 4 Karel Zak 2006-03-27 20:18:03 UTC
To be honest I don't have idea what package(s) must be upgraded, but it's
usually good idea upgrade all packages and keep your installation up to date :-)

Closing.