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)



The following reply was made to PR kern/42241; it has been noted by GNATS.

From: Stefan =?iso-8859-1?Q?Kr=FCger?= <stadtkind2%gmx.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: rmind%NetBSD.org@localhost, gnats-admin%netbsd.org@localhost, 
netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/42241 (Problems with AIO and Samba)
Date: Wed, 28 Oct 2009 22:34:32 +0100

 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