Re: [LONG] Strange Loop..

From: Benjamin Draper (satrycus@drachenburg.demon.co.uk)
Date: 05/10/99


The Merciless Lord of Everything wrote:
> Lately (After my last update of everything...) my mud decided NOT to let
> anyone in, but only on this RedHat 5.0 running on a DX4100Mhz, on any
> other machine (Even other RH5.0's) it works like a dream, leads me to
> believe that it is the machine that is fscked somehow, but I tracked it
> down to the following part in comm.c
>
> Around line 624 or so I find the following Loop:
> -- *SNIP* --
> do {
>   if (select(0, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &timeout) < 0) {
>     if (errno != EINTR) {
>       perror("Select sleep");
>       exit(1);
>     }
>   }
>   gettimeofday(&now, (struct timezone *) 0);
>   timeout = timediff(last_time, now);
> } while (timeout.tv_usec || timeout.tv_sec);
> -- *SNIP* --
>

 I have exactly the same problem, but with redhat5.2 using
circle30bpl12, circle30bpl14 and circle30bpl15. The problem suddenly
developed over night and I've ruled out any code changes I might have
added in by using fresh stock copies of the last three patch levels.
 The sysadmins say the problem lies with the code, their setup hasn't
changed at all.
 I did get some information from using 'strace' so here it is:

*** start of log ***
select(4, [3], NULL, NULL, NULL)        = 1 (in [3])
time(NULL)                              = 926379536
write(2, "May 10 19:38:56 :: ", 19)     = 19
write(2, "New connection.  Waking up.", 27) = 27
write(2, "\n", 1)                       = 1
gettimeofday({926379536, 291235}, NULL) = 0
gettimeofday({926379536, 291407}, NULL) = 0
gettimeofday({926379536, 291563}, NULL) = 0
select(0, NULL, NULL, NULL, {0, 99672}) = 0 (Timeout)
gettimeofday({926379536, 402083}, NULL) = 0

*** can't locate two files in lib ***
open("/lib/libnss_nisplus.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libnss_nisplus.so.1", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/lib/libnss_nis.so.1", O_RDONLY)  = 6

*** start of infinite loop ***
time(NULL)                              = 926379536
gettimeofday({926379536, 442794}, NULL) = 0
gettimeofday({926379536, 442954}, NULL) = 0
select(0, NULL, NULL, NULL, {0, 48281}) = 0 (Timeout)
gettimeofday({926379536, 501972}, NULL) = 0
select(0, NULL, NULL, NULL, {21436416, 720000}) = 0 (Timeout)
gettimeofday({926379536, 502321}, NULL) = 0
select(0, NULL, NULL, NULL, {21436416, 720000}) = 0 (Timeout)
...continues ad infinitum

 however I have no idea whether this is of any use as I'm way out of
my league here. I do have much more of this strace log, but it's a bit
too long to send to the list. Any help would be greatly appreciated, as
everything has gone decidedly pear-shaped.

-> Ben


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST