Tech Info 084: Mac OS X 10.3.5 clients disconnecting from Solaris 9 servers

HELIOS Tech Info #084

Mon, 4 Oct 2004

Mac OS X 10.3.5 clients disconnecting from Solaris 9 servers

Mac OS X 10.3.x had AFP disconnection issues which are fixed by Apple in Mac OS X 10.3.5. A different potential connection loss problem for Mac OS X clients on heavy server load was fixed in the recent AFP 3.1 preview 6.
Still we receive reports about disconnects between Mac OS X 10.3.5 clients running the latest AFP 3.1 preview 6 on Solaris 9 with Gigabit Ethernet. These disconnects were only reported when data is copied from one volume to another volume on the same server.
Our investigations showed a workaround, where you have to change the TCP buffers.
To change the “afpsrv” dsiblocksize to 64 kB use the following command (see HELIOS Base 1.1 manual chapter 7.1 for details): 
prefvalue -k Programs/afpsrv/dsiblocksize -t int 65536
To revert this change you may use the command: 
prefvalue -k Programs/afpsrv/dsiblocksize -d
Also the Solaris TCP buffer needs to be adjusted. Get the original value of “tcp_recv_hiwat” via:
ndd /dev/tcp tcp_recv_hiwat 
and remember this value in case you want to switch back to your default value.
Now set the new buffer size:
ndd -set /dev/tcp tcp_recv_hiwat 131088
In order to use the above changed settings, the HELIOS Services need to be restarted via the “stop-helios” / “start-helios” commands.
See your Solaris documentation how to set the changed “tcp_recv_hiwat” value permanently or for the gigabit interface only.
With these settings there should be no longer an AFP disconnect using a Mac OS X 10.3.5 client and the latest AFP 3.1 preview 6. 

Update 2006-06-13:

We released update u0556 which implements a workaround for a TCP/IP zero window size problem when copying large files between AFP server volumes from Mac OS X clients.  This Tech Info is now obsolete.