SUMMARY: rlogin, telnet suddenly hanging

From: Michael Hase <michael_at_six.de>
Date: Wed May 21 2003 - 15:10:00 EDT
thanks to:

Lieven Marchand
Casper Dik
Yakov Lerner
Jonathan V Hays

Question was:
> our e250/solaris 7 suddenly refuses rlogin and telnet logins, fortunately
> ssh and console logins work ok. Every other service like databases, samba,
> apache, nfs is also ok. It just seems that the in.telnetd or in.rlogind
> processes are hanging.
> ...
> It just seems to hang after writing to /etc/initpipe

Answer:
There were suggestions to do the following:
check if / is mounted ro (was ok, that is: mounted rw)
check if fuser /etc/initpipe returns 1o (was ok)
try to change runlevel (could have helped, didn't try)
truss init itself (it did nothing when telnetting in)
kill -HUP 1 (which did not help)
check if dns is ok (problem not related to dns)

After all I stumbled over the size of /etc/initpipe, it was 9k. A
cat /etc/initpipe > /dev/null
emptied this fifo, and rlogin and telnet worked again. Each login
added 8 bytes to initpipe, so we could expect the same problem if the
pipe buffer got filled again. init simply did not fetch data from
/etc/initpipe anymore.

After a reboot some minutes ago everything works ok, and initpipe is
empty as it should. The second problem (sendmail[24580]: ypbind client:
can't get rdev) is probably not related to the init problem. After reboot
this is gone too. And fstat on /dev/tcp doesn't return an error anymore.

Original post follows:

> Hello,
>
> our e250/solaris 7 suddenly refuses rlogin and telnet logins, fortunately
> ssh and console logins work ok. Every other service like databases, samba,
> apache, nfs is also ok. It just seems that the in.telnetd or in.rlogind
> processes are hanging.
>
> Here's the output of a telnet session
>
> telnet xxxxx.six.de
> Trying xx.xx.xx.xx...
> Connected to xxxxx.six.de.
> Escape character is '^]'.
>
>
> SunOS 5.7
>
> After that nothing happens. in.telnetd is running, but there is no login
> prompt. The same with rlogin. Here is the end of truss output on inetd
> when such an rlogin session starts:
>
> 24492:  write(6, " . r l o g i n\0\0\0\0\0".., 372)     = 372
> 24488:  sigaction(SIGCLD, 0xFFBEF980, 0xFFBEFA20)       = 0
> 24492:  lseek(7, 2520, SEEK_SET)                        = 2520
> 24488:  sigprocmask(SIG_UNBLOCK, 0xFFBEFA50, 0xFFBEFA40) = 0
> 24492:  write(7, " . r l o g i n\0 r P 0 0".., 36)      = 36
> 24488:  setpgrp()                                       = 24488
> 24492:  open("/var/adm/wtmp", O_WRONLY|O_APPEND)        = 8
> 24488:  sigaction(SIGTTOU, 0xFFBEF880, 0xFFBEF920)      = 0
> 24492:  open("/var/adm/wtmpx", O_WRONLY|O_APPEND)       = 9
> 24488:  sigprocmask(SIG_UNBLOCK, 0xFFBEF950, 0xFFBEF940) = 0
> 24492:  lseek(8, 0, SEEK_END)                           = 5615244
> 24488:  putmsg(0, 0xFFBEF94C, 0xFFBEF940, 0)            = 0
> 24492:  lseek(9, 0, SEEK_END)                           = 0x03755CA0
> 24492:  write(8, " . r l o g i n\0 r P 0 0".., 36)      = 36
> 24492:  write(9, " . r l o g i n\0\0\0\0\0".., 372)     = 372
> 24488:  open("/dev/logindmux", O_RDWR)                  = 5
> 24492:  close(8)                                        = 0
> 24492:  close(9)                                        = 0
> 24488:  open("/dev/logindmux", O_RDWR)                  = 6
> 24492:  fcntl(6, F_SETLK, 0xFFBEF974)                   = 0
> 24492:  fcntl(7, F_SETLK, 0xFFBEF974)                   = 0
> 24492:  close(6)                                        = 0
> 24488:  ioctl(5, I_LINK, 4)                             = 3241
> 24492:  close(7)                                        = 0
> 24492:  open("/etc/initpipe", O_RDWR)                   = 6
> 24488:  ioctl(6, I_LINK, 0)                             = 3242
> 24488:  fstat(5, 0xFFBEF9D8)                            = 0
> 24488:  ioctl(6, I_STR, 0xFFBEF9C0)                     = 0
> 24488:  fstat(6, 0xFFBEF9D8)                            = 0
> 24488:  ioctl(5, I_STR, 0xFFBEF9C0)                     = 0
> 24488:  ioctl(6, I_STR, 0xFFBEF9C0)                     = 0
> 24247:  poll(0xFFBEF578, 49, -1)        (sleeping...)
> 24492:  write(6, "\0\0\001\0\0 _AC", 8) (sleeping...)
> 24488:  pause()                         (sleeping...)
>
> It just seems to hang after writing to /etc/initpipe
>
> I first thought if this could be related to syslog entries like
> sendmail[24580]: ypbind client:  can't get rdev
> Bug ID 4209076 on sunsolve says that this is a problem with 32bit apps
> running on a 64bit kernel. We indeed get EOVERFLOW when trying to fstat
> eg /dev/tcp, /dev/udp, /dev/arp from a 32bit test program. Could there be
> any relation to the problem above? In this case a reboot would help (after
> 196 days uptime).
>
> Any suggestions?
>
> Thanks,
> Michael
>
>

Thanks again,
Michael

-- 
i.A. Michael Hase              Six Offene Systeme GmbH
michael@six.de                 Sielminger Str. 63
http://www.six.de              70771 Leinfelden-Echterdingen
phone +49 711 99091 62         Germany
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
Received on Wed May 21 15:09:52 2003

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:11 EST