AIO, SMB2 and Samba 3.6

Jeremy Allison jra at samba.org
Thu Feb 23 01:05:50 MST 2012


On Thu, Feb 23, 2012 at 07:59:29AM +0100, Volker Lendecke wrote:
> On Thu, Feb 23, 2012 at 12:52:09PM +1100, Andrew Bartlett wrote:
> > Done.  Attached.
> > 
> > Let me know if there is anything more I can do to help.  
> 
> 32441 17:41:46.916975 rt_sigqueueinfo(32438, SIGRT_5, {si_signo=SIGRT_5, si_code=SI_ASYNCIO, si_pid=32438, si_uid=0, si_value={int=143949824, ptr=0x8948000}} <unfinished ...>
> 32438 17:41:46.917041 <... setgroups32 resumed> ) = 0 <0.000072>
> 32441 17:41:46.917063 <... rt_sigqueueinfo resumed> ) = -1 EPERM (Operation not permitted) <0.000026>
> 32438 17:41:46.917089 tgkill(32438, 32441, SIGRT_1 <unfinished ...>
> 32441 17:41:46.917114 gettimeofday( <unfinished ...>
> 32438 17:41:46.917135 <... tgkill resumed> ) = 0 <0.000026>
> 
> Something is really fishy with the glibc aio implementation
> on your system. I would think the EPERM is a problem. If you
> really need this solved, we need to dig into glibc I think.
> Alternatively, you might try the aio_pthread module.

Isn't this the signal race that tridge found with
glibc aio users that change uid whilst an aio is
outstanding ? When smbd goes back to the root user
for the whole process then the Linux thread that finishes
doing the aio doesn't have permissions to send the
signal the io is finished.

Jeremy.


More information about the samba-technical mailing list