[PATCH] Fix bug 9412 - SMB2 server doesn't support recvfile.

Jones jones.kstw at gmail.com
Wed Apr 16 23:16:10 MDT 2014

2014-04-17 5:34 GMT+08:00 Jeremy Allison <jra at samba.org>:

> Can you give me more details as to
> how you're reproducing this problem ?

Hello Jeremy,

The attached picture is what I reproduce the EAGAIN,
hmm hope following description is not too chatter.

Over a normal LAN which owned RTT is always <1ms,
cannot easily see splice returned -1 with EAGAIN.
Hence try to increase the RTT through the WANem,
and manually do something to make EAGAIN pop-out.

A) Environment setup

The network topology is like this:
Client: Windows 7
Server: Linux box as a NAS
Latency generator: PC with WANem installed and located between client &

The latency generator is came from WANem ISO file,
the WANem v3.0 Beta released 20130207 is selected,
a bootable live CD is installed into the PC.
PC's eth1 is directly linked to the client: windows 7,
PC's eth2 is directly linked to the server: my linux box.

The ip address arrangement is as attached picture,

Then assign the routing rules under client & server.

For Client (Windows 7):
Start -> Run -> cmd.exe,
input following commands:
route add mask
route add mask

For Server (Linux box as a NAS):
input following commands:
route add -host netmask gw; \
route add -host netmask gw; \
route add -host netmask gw;

B) Preliminary ping

Go to WANem GUI -> Basic Mode -> increase eth2 delay time -> Apply settings.
Then on client site try ping the ip address of server,
and check the output message if RTT field is raised as expected.
If yes, this environment setup is good to go!
And click Reset settings button to rollback as default now.

C) Start this test case
Since the client is windows 7,
hence the remote shared folder resident in linux box is
mapped to client site as a net drive with letter -> y: .

Drag-and-drop a single 8GB file from local disk c: to net disk y: ,
during uploading is in progress,
launch the strace as following:
strace 2>&1 -p $smbd_pid | grep -inr --color -E "(splice|fcntl|pwrite)"
and a bulk of splice calls are prompted.

Next is through the WANem GUI and increase the eth2 delay time to 500ms,
and click the Apply settings button.

Now the upload progress and splice prompt rate would be slow down,
on this phase the EAGAIN still not happened.

And last ... but not the least!
Manually click the Apply settings button triple times and wait half a
and loop this movement,
Then the EAGAIN is in action with luck!

Hope this help reproduce the EAGAIN,
thank you.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: EAGAIN.png
Type: image/png
Size: 284563 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20140417/a083c5d0/attachment-0001.png>

More information about the samba-technical mailing list