Subject: Help with xload freaking out
To: None <current-users@NetBSD.ORG>
From: Michael L. VanLoon -- HeadCandy.com <michaelv@MindBender.serv.net>
List: current-users
Date: 11/15/1996 11:12:18
I posted about this many months ago, with not much response.  Maybe
some additional info can help shed some light -- maybe not.

If it matters, it's a Pentium, running NetBSD/i386 1.2 (why am I
posting to current?  Because this problem existed in current before
1.2, and probably still exists today...)

If it helps, there was a point in current, in the early part of this
year (don't remember exactly, but maybe around Marchish-Aprilish) when
I was seeing this problem a lot more often, and sometimes even xterms
would freak out with the same message (below).  Yes, I have upgraded
my XFree86 binaries since then, but at the time, the transition from
never seeing this problem, to seeing it frequently, to seeing it only
occasionally, came while my XFree86 binaries were unchanged, and I was
tracking NetBSD-current updates.

Basically, after xload has been running for several days, sometimes it
just "freaks out".  It will start eating all CPU time, and will be
constantly stuffing this into stdout:

	Warning: Select failed; error code 22

I ran it under ktrace, and managed to catch it in the act.  The ktrace
info is several hundred megabytes, so I'll just include the part where
it first gets the error.  Prior to this is normal operation:

  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
  6774 xload    RET   select 0
  6774 xload    CALL  gettimeofday(0xf7bfd048,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  gettimeofday(0xf7bfcfec,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  __sysctl(0xf7bfcf9c,0x2,0xf7bfcfa8,0xf7bfcfa4,0,0)
  6774 xload    RET   __sysctl 0
  6774 xload    CALL  write(0x3,0x13000,0x40)
  6774 xload    GIO   fd 3 wrote 64 bytes
       ">\0\a\0\^E\0\0\^C\^E\0\0\^C\^C\0\0\^C\^A\0\0\0\0\0\0\0S\^AW\0=\0\^D\0\^E\0\0\^CS\^A\0\0\^A\
        \0W\0F\0\^E\0\^E\0\0\^C\^C\0\0\^CS\^AP\0\^A\0\a\0"
  6774 xload    RET   write 64/0x40
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  read(0x3,0xf7bfc83c,0x20)
  6774 xload    GIO   fd 3 read 32 bytes
       "\^N\^C)U\^E\0\0\^C\0\0>\^C\0\0\0\0D\M-U\M-?\M-w\M^G"\a\0\M-82Q\0\M-82Q\0"
  6774 xload    RET   read 32/0x20
  6774 xload    CALL  gettimeofday(0xf7bfd048,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  gettimeofday(0xf7bfd008,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
  6774 xload    RET   select 0
  6774 xload    CALL  gettimeofday(0xf7bfd048,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  gettimeofday(0xf7bfd008,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
  6774 xload    RET   select 0
  6774 xload    CALL  gettimeofday(0xf7bfd048,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  ioctl(0x3,FIONREAD,0xf7bfc838)
  6774 xload    RET   ioctl 0
  6774 xload    CALL  gettimeofday(0xf7bfd008,0)
  6774 xload    RET   gettimeofday 0
  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
>>>>> I believe this is the transition point, from normal to "freak
>>>>> out" state...
  6774 xload    RET   select -1 errno 22 Invalid argument
  6774 xload    CALL  open(0x10074cc8,0,0x100ac060)
  6774 xload    NAMI  "/usr/X11R6/lib/X11/XtErrorDB"
  6774 xload    RET   open -1 errno 2 No such file or directory
  6774 xload    CALL  write(0x2,0xf7bfc050,0x26)
  6774 xload    GIO   fd 2 wrote 38 bytes
       "Warning: Select failed; error code 22
       "
  6774 xload    RET   write 38/0x26
  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
  6774 xload    RET   select -1 errno 22 Invalid argument
  6774 xload    CALL  write(0x2,0xf7bfc050,0x26)
  6774 xload    GIO   fd 2 wrote 38 bytes
       "Warning: Select failed; error code 22
       "
  6774 xload    RET   write 38/0x26
  6774 xload    CALL  select(0x4,0xf7bfcfa4,0xf7bfcfc4,0xf7bfcfe4,0xf7bfd018)
  6774 xload    RET   select -1 errno 22 Invalid argument
  6774 xload    CALL  write(0x2,0xf7bfc050,0x26)
  6774 xload    GIO   fd 2 wrote 38 bytes
       "Warning: Select failed; error code 22

etc...  It continues like this until my hard drive fills up with log
output...

Anyone have any additional insight?

-----------------------------------------------------------------------------
  Michael L. VanLoon                           michaelv@MindBender.serv.net
        --<  Free your mind and your machine -- NetBSD free un*x  >--
    NetBSD working ports: 386+PC, Mac 68k, Amiga, Atari 68k, HP300, Sun3,
        Sun4/4c/4m, DEC MIPS, DEC Alpha, PC532, VAX, MVME68k, arm32...
    NetBSD ports in progress: PICA, others...
-----------------------------------------------------------------------------