NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/41152: netbsd-3 inetd fails with netbsd-5 kernel (kqueue issue ?)



>Number:         41152
>Category:       kern
>Synopsis:       netbsd-3 inet fails with netbsd-5 kernel (kqueue issue ?)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Apr 05 20:10:01 +0000 2009
>Originator:     Manuel Bouyer
>Release:        NetBSD 5.0_RC3
>Organization:
>Environment:
System: NetBSD horn 5.0_RC3 NetBSD 5.0_RC3 (DISCODEBUG) #34: Sun Apr 5 21:37:10 
MEST 2009 bouyer@disco:/home/bouyer/src-5/src/sys/arch/i386/compile/DISCODEBUG 
i386
Architecture: i386
Machine: i386
>Description:
        With a up to date netbsd-5 kernel and a netbsd-3 userland,
        inetd fails to properly run rpc/udp programs multiple time.
        For example, with
rstatd/1-3      dgram   rpc/udp wait:100 nobody:kmem /usr/libexec/rpc.rstatd 
rpc.rstatd
        the first query will be properly handled, but next ones stay
        in the socket's recv queue (as shown by netstat).
        A ktrace of inetd shows:
  1398 inetd    RET   kevent 1
  1398 inetd    CALL  gettimeofday(0x8054118,0)
  1398 inetd    RET   gettimeofday 0
  1398 inetd    CALL  fork
  1398 inetd    RET   fork 1265/0x4f1
  1398 inetd    CALL  kevent(3,0x804f7e0,1,0xbfbfe138,0x40,0)
  1265 inetd    EMUL  "netbsd"
  1265 inetd    RET   fork 0
  1265 inetd    CALL  __sigaction_sigtramp(0xe,0xbfbfe090,0xbfbfe070,0xbbb624ec,
1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __sigaction_sigtramp(1,0xbfbfe090,0xbfbfe070,0xbbb624ec,1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __sigaction_sigtramp(0x14,0xbfbfe090,0xbfbfe070,0xbbb624ec
,1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __sigaction_sigtramp(0xf,0xbfbfe090,0xbfbfe070,0xbbb624ec,
1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __sigaction_sigtramp(2,0xbfbfe090,0xbfbfe070,0xbbb624ec,1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __sigaction_sigtramp(0xd,0xbfbfe090,0xbfbfe070,0xbbb624ec,
1)
  1265 inetd    RET   __sigaction_sigtramp 0
  1265 inetd    CALL  __stat13(0xbbbb1a65,0xbfbfdc10)
  1265 inetd    NAMI  "/etc/nsswitch.conf"
  1265 inetd    RET   __stat13 0
  1265 inetd    CALL  open(0xbbbb1a65,0,0x1b6)
  1265 inetd    NAMI  "/etc/nsswitch.conf"
  1265 inetd    RET   open 3
  1265 inetd    CALL  __fstat13(3,0xbfbfda60)
  1265 inetd    RET   __fstat13 0
  1265 inetd    CALL  read(3,0x8072000,0x2000)
  1265 inetd    GIO   fd 3 read 598 bytes
       "#       $NetBSD: nsswitch.conf,v 1.5 1999/10/24 12:36:52 lukem Exp $
[...]
  1265 inetd    CALL  setgroups(1,0xbfbfdcd0)
  1265 inetd    RET   setgroups 0
  1265 inetd    CALL  setuid(0x7fff)
  1265 inetd    RET   setuid 0
  1265 inetd    CALL  fcntl(5,2,0)
  1265 inetd    RET   fcntl 0
  1265 inetd    CALL  dup2(5,0)
  1265 inetd    RET   dup2 0
  1265 inetd    CALL  close(5)
  1265 inetd    RET   close 0
  1265 inetd    CALL  dup2(0,1)
  1265 inetd    RET   dup2 1
  1265 inetd    CALL  dup2(0,2)
  1265 inetd    RET   dup2 2
  1265 inetd    CALL  execve(0x8050080,0x8054040,0xbfbfe8c0)
  1265 inetd    NAMI  "/usr/libexec/rpc.rstatd"
  1265 inetd    NAMI  "/usr/libexec/ld.elf_so"
  1265 rpc.rstatd EMUL  "netbsd"
  1265 rpc.rstatd RET   syscall JUSTRETURN
  1265 rpc.rstatd CALL  mmap(0,0x8000,3,0x1002,0xffffffff,0,0,0)
  1265 rpc.rstatd RET   mmap -1145131008/0xbbbeb000
  1265 rpc.rstatd CALL  open(0xbbbfc188,0,0)
  1265 rpc.rstatd NAMI  "/etc/ld.so.conf"
[...]
  1265 rpc.rstatd RET   pread 492/0x1ec
  1265 rpc.rstatd CALL  setitimer(0,0xbfbfdc50,0xbfbfdc40)
  1265 rpc.rstatd RET   setitimer 0
  1265 rpc.rstatd CALL  __sigaction_sigtramp(0xe,0xbfbfe110,0xbfbfe0f0,0xbbb6d4e
c,1)
  1265 rpc.rstatd RET   __sigaction_sigtramp 0
  1265 rpc.rstatd CALL  setitimer(0,0xbfbfe130,0xbfbfe120)
  1265 rpc.rstatd RET   setitimer 0
  1265 rpc.rstatd CALL  sendto(0,0x804f000,0x80,0,0x8053070,0x10)
  1265 rpc.rstatd USER  "msghdr: 48, 7030050810000000d4fc3ece0100000000000000060
0000000000000"
  1265 rpc.rstatd USER  "sockargs: 36, 1002ffc884e33f7e0000000000000000"
  1265 rpc.rstatd GIO   fd 0 wrote 128 bytes
       "\M^G-ay\0\0\0\^A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^A\0\0\0\0\0\0\0\
        \M-'\M-p\0\^By\M^S\0\^B\^]\M-&\0\^B\M-^\M-H\0\0\M-!\M^M\0\0\M-%'\0\^Bd\
        \M-r\0\0\0\0\0\0\0\b\0\0\0\^X\0\^Qh\M-.\0Q\^]\^Y\0\0\0\0\0\0\0\0\0\0\0\
        \0\0\M^D\M-S\M-1\0\0\b\M-?\0\0\aK\0\0\^E%I\M-Y\b\M-]\0\^C\^C\M^]I\M-Y\
        \r\"\0\b\M-t\M-N\0Q\M-i\M-Q"
  1265 rpc.rstatd RET   sendto 128/0x80
  1265 rpc.rstatd CALL  exit(0)

The initial inetd process (1398) is never woken up.

>How-To-Repeat:
        see above
>Fix:
        unknown



Home | Main Index | Thread Index | Old Index