NetBSD-Bugs archive

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

Re: kern/42241 (Problems with AIO and Samba)



On Wed, 28 Oct 2009, Mindaugas Rasiukevicius wrote:

> >  Hello,
> >
> > As already written in
> > http://mail-index.netbsd.org/tech-kern/2009/10/27/msg006371.html , Samba
> > compilied with AIO support and aio read/write enabled in smb.conf doesn't
> > work correctly. The connection is dropped after some time (randomly with
> > normal usage, pretty fast with Bart's Stuff Test 5, see "How to repeat").
> > 
> > A quick testrun produced a 46M ktrace.out file (120M "decoded" with
> > kdump), which showed nothing suspicious IMHO
>  
>  Can you show us the end of ktrace output?  Interest is in last aio syscall
>  sequences and where it is stuck.

end of ktrace output (captured using ktrace /usr/pkg/sbin/smbd -i) is:

  6590      1 smbd     CALL  munmap(0xbba65000,0x9d08)
  6590      1 smbd     RET   munmap 0
  6590      1 smbd     CALL  close(9)  
  6590      1 smbd     RET   close 0
  6590      1 smbd     CALL  munmap(0xbba41000,0xb000)
  6590      1 smbd     RET   munmap 0
  6590      1 smbd     CALL  close(0xa)
  6590      1 smbd     RET   close 0
  6590      1 smbd     CALL  kill(0, SIGTERM)
  6590      1 smbd     RET   kill 0
  6590      1 smbd     PSIG  SIGTERM caught handler=0x262714 mask=(8,13,31):
code=SI_USER sent by pid=6590, uid=0)
  6590      1 smbd     CALL  write(0x14,0xbfbfe0d8,1)
  6590      1 smbd     GIO   fd 20 wrote 1 bytes  
       "\^O"
  6590      1 smbd     RET   write 1
  6590      1 smbd     CALL  setcontext(0xbfbfe194)
  6590      1 smbd     RET   syscall JUSTRETURN
  6590      1 smbd     CALL  exit(0)

last aio syscall is:

  6590      1 smbd     CALL  aio_cancel(0x18,0xbb90b0e8)
  6590      1 smbd     RET   aio_cancel 3
  6590      1 smbd     CALL  fcntl(0xa,9,0xbfbfd634)
  6590      1 smbd     RET   fcntl 0
  6590      1 smbd     CALL  fcntl(0xa,9,0xbfbfd594)
  6590      1 smbd     RET   fcntl 0
  6590      1 smbd     CALL  close(0x18)
  6590      1 smbd     RET   close 0
  6590      1 smbd     CALL  geteuid
  6590      1 smbd     RET   geteuid 0
  6590      1 smbd     CALL  getegid
  6590      1 smbd     RET   getegid 0
  6590      1 smbd     CALL  setgroups(0,0)
  6590      1 smbd     RET   setgroups 0
  6590      1 smbd     CALL  setregid(0xffffffff,0)
  6590      1 smbd     RET   setregid 0
  6590      1 smbd     CALL  getegid
  6590      1 smbd     RET   getegid 0
  6590      1 smbd     CALL  setreuid(0xffffffff,0)
  6590      1 smbd     RET   setreuid 0
  6590      1 smbd     CALL  geteuid
  6590      1 smbd     RET   geteuid 0
  6590      1 smbd     CALL  write(1,0xbb90a280,0x3b)
  6590      1 smbd     GIO   fd 1 wrote 59 bytes
       "winxp (10.0.0.5) closed connection to service testuser\n"

> > Running smbd with '-i' makes Samba quit during the test (I see a SIGTERM
> > in ktrace), running it daemonized '-D' just spawns a new child it seems.
>  
>  ktrace(1) has option '-i' to trace children of process.

when running ktrace -i /usr/pkg/sbin/smbd -D, the output looks a bit
different

last aio syscall is:

  9198      1 smbd     CALL  select(0x17,0xbfbfe504,0xbfbfe4e4,0,0xbfbfe52c)
  9198      1 smbd     RET   select -1 errno 4 Interrupted system call
  9198      1 smbd     PSIG  SIGRT2 caught handler=0xb1bec mask=(8,13,31):
code=SI_ASYNCIO unimplemented)
  9198      1 smbd     CALL  write(0x13,0xbfbfdff8,1)
  9198      1 smbd     GIO   fd 19 wrote 1 bytes  
       "#"
  9198      1 smbd     RET   write 1
  9198      1 smbd     CALL  setcontext(0xbfbfe0b4)
  9198      1 smbd     RET   write JUSTRETURN
  9198      1 smbd     CALL  __sigprocmask14(1,0xbfbfe3e4,0)
  9198      1 smbd     RET   __sigprocmask14 0
  9198      1 smbd     CALL  aio_error(0xbb90b2c8)
  9198      1 smbd     RET   aio_error 0
  9198      1 smbd     CALL  aio_return(0xbb90b2c8)
  9198      1 smbd     RET   aio_return 65536/0x10000

>  Thanks.

np, let me know when you want more...


Home | Main Index | Thread Index | Old Index