Subject: Re: kern/20337: current-current kernel drives sendmail crazy
To: Frank Kardel <Frank.Kardel@Acrys.COM>
From: Sean Davis <dive@endersgame.net>
List: netbsd-bugs
Date: 02/20/2003 10:59:53
On Thu, Feb 20, 2003 at 12:26:02PM -0000, Frank Kardel wrote:
> Sean Davis <dive@endersgame.net> said:
> 
> > On Fri, Feb 14, 2003 at 12:02:03PM +0100, Frank Kardel wrote:
> > > Sean Davis wrote:
> > > 
> > 
> > Hmm... Well, this was supposedly fixed, but it is not. It still happens to 
> me
> > with ssh2 from ssh.com. Seems to be less bad (ie it'll hang in the middle 
> of an
> > 'ls' on the remote system but if i hit enter it'll show me the rest of the
> > output) but still hangs things like irc totally and makes ssh2 need 
> killing. :\
> 
> Things looked fine at my site - but if this persists for you maybe
> you send-pr it again with a reference to possible the old bug and
> a description of yout symptoms. Is ssh looping again on read() and EAGAIN?
> 

It's not sticking in read/EAGAIN anymore. Here's what ktrace looks like now:
(its sticking in select())
 16407 ssh2     CALL  read(0,0xbfbfdad8,0x400)
 16407 ssh2     RET   read -1 errno 35 Resource temporarily unavailable
 16407 ssh2     CALL  gettimeofday(0x813fea8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  gettimeofday(0x813ff08,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  gettimeofday(0x81500a8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  gettimeofday(0x81500c8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  gettimeofday(0xbfbff0b8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  select(0x4,0xbfbff0f8,0xbfbff0d8,0,0xbfbff0a8)
 16407 ssh2     RET   select 0
 16407 ssh2     CALL  gettimeofday(0xbfbff0b8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  __sigaction_sigtramp(0xd,0xbfbfeda0,0xbfbfed88,0x481c2848,0x1)
 16407 ssh2     RET   __sigaction_sigtramp 0
 16407 ssh2     CALL  write(0x3,0x815f008,0x68)
 16407 ssh2     GIO   fd 3 wrote 104 bytes
       "\^P\M^L \M-T`\240o\M-M\M-c\M-`\M^X\M-~\M-[\M-94\^P\M-yTe\240B\M-)\M-kD\M-@\
        \M-g\M-0\M-y5C\^SEc\M-\\M^Y\M-2\M-e\0e`|\M^\\M-_\M^M\M-k\M^B\0\M-KV\^A0\M-'\
        '\M-+9E\^Z\M-'/\M-w\M^S'\M^N\M-YXt\M-R\M-d\M^[d\M-&\M-*\M-::\M-d\M-x\M^S\^E\
        \M^D\M-%#\M^Q\M-p\^[~\M-7\M^B\M-}.A\M-&mk\M^K~ber\M^P\M-=\M-j&Sl"
 16407 ssh2     RET   write 104/0x68
 16407 ssh2     CALL  __sigaction_sigtramp(0xd,0xbfbfeda0,0xbfbfed88,0x481c2848,0x1)
 16407 ssh2     RET   __sigaction_sigtramp 0
 16407 ssh2     CALL  gettimeofday(0xbfbff0b8,0)
 16407 ssh2     RET   gettimeofday 0
 16407 ssh2     CALL  select(0x4,0xbfbff0f8,0xbfbff0d8,0,0xbfbff0a8)
^ and this is where its hung.

From looking up, the last thing to have fd 4 was /etc/pwd.db... the socket seems
to be fd 3, which was where the EAGAIN loop was happening. File descriptor 4
gets closed after reading pwd.db, so maybe thats where/why its hanging... I'll
have to investigate some more before I send a PR.

-- 
/~\ The ASCII
\ / Ribbon Campaign                   Sean Davis
 X  Against HTML                       aka dive
/ \ Email!