Seeing EINVAL from writev on 8.0 to a non-blocking socket even though the data seems to hit the wire

Richard Sharpe realrichardsharpe at gmail.com
Thu May 2 03:03:25 UTC 2013


Hi folks,

I am checking to see if there are any known bugs with respect to this
in FreeBSD 8.0.

Situation is that Samba 3.6.6 uses writev to a non-blocking socket to
get the SMB2 requests on the wire.

Intermittently, we see the writev return EINVAL even though the data
has gotten on the wire. This I have verified by grabbing a capture and
comparing the SMB Sequence number in the last outgoing packet on the
wire vs the in-memory contents when we get EINVAL.

Sometimes it occurs on a four-element IOVEC, sometimes we get EAGAIN
on the four-element IOVEC and then we get EINVAL when retrying on a
smaller IOVEC.

Where should I look to check if there is some path where this might be
happening? Is this even the correct mailing list?

-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)


More information about the freebsd-net mailing list