[Samba] The connection would be broken when read rate is too big
Jeremy Allison
jra at samba.org
Thu Mar 2 00:29:49 UTC 2017
On Wed, Mar 01, 2017 at 08:31:32AM +0000, Chenyehua via samba wrote:
> Hi samba-team,
> I met a problem recently:
>
> Problem Description:
> The connection would be broken when read rate is too big.
>
> Environment:
> Samba 4.3.11
> Ubuntu server 14.04
>
> Configuration:
> usershare allow guests = yes
> max protocol = SMB3
> large readwrite = yes
> use sendfile = yes
> aio read size = 1024
> oplocks = yes
> deadtime = 10
> aio write behind = true
> clustering = yes
> store dos attributes = yes
> vfs objects = acl_xattr
> socket options = TCP_NODELAY SO_RCVBUF=131072 SO_SNDBUF=131072
> ctdbd socket = /var/run/ctdb/ctdbd.socket
> log level = 2
> security = user
>
> I add some logs, found when the send queue is more than the max, it won’t allocate memory to the state->req in smbd_smb2_request_next_incoming function.
> Then, the smbd_smb2_io_handler function mark the fd to not readable because state->req == NULL, and never mark it to readable again.
> Then the Request Expiration Timer will break the connection.
>
> I don’t know why the fd is marked to readable when the send queue is more than the max.
> Or why mark the fd readable but not allocate memory to the state->req.
>
> My solution:
> Allocate memory to the state->req before return when the send queue is more than the max in smbd_smb2_request_next_incoming function.
>
> Could you give us some help about the problem.
I'm looking at this now. Your report looks correct.
Can you log a bug at bugzilla.samba.org so we can
track this ?
I'm redirecting the reply to samba-technical at lists.samba.org
as it more properly belongs there than at samba at lists.samba.org.
Cheers,
Jeremy.
More information about the samba-technical
mailing list