BUFFER_SIZE and "max xmit"
Carlos E. G. Carvalho
cartola at techmaster.com.br
Fri Apr 23 15:58:08 GMT 1999
I have a samba version 1.9.15p8 (old, I know) running in 4
workstations Sun spark 20 with solaris 2.4. This version is still so old
because it has some modifications in the source code to adequate the samba
server to a necessity of the editorial system of a newspaper company
here in Rio de Janeiro/Brasil (also online at www.oglobo.com.br).
You see, the samba situation is quite sensible and the less we
change the less we have a chance to have problems. The cost of
implementing the changes again in version 2 and the riscs involved in
doing this leads us to work with less changes as possible. The servers
have about 340 simultaneous clients each and it would really have much
noise if we had any little problem.
The problem is: I'm trying to upgrade the samba server to version
1.9.18p10 (the latest before the 2 ones, I guess) but its not working out.
One of the two basic modifications I did in the source is changing the
defined BUFFER_SIZE to 3FFF, instead of the original value FFFF.
This modification is necessary because it allows the servers to
have this number of clients with the amount of memory they have.
To avoid the server to crash due to "Invalid packet length"
(message logged by the server in the log file) I tried to configure the
global parameter "max xmit". Unfotunately it seems not to work under
95/98/NT. I decided to log every packet lenght to see what was happening:
1- Using Windows 3.11 as client writing files to the samba
server everything is ok. The packet maximun size is always the
one I specify. By the way, with win3.11 it works even withou
this parameter set.
2- Using Win 95/98/NT as client writing files to the same
samba server it crashes all the time. The packet sizes I see in
the log file seems to show that win 95/98/NT just ignore the
parameter "max xmit"
3- Using smbclient as client the parameter also seems to be
So, here is my question: is it a bug in smbclient/95/98/NT? Why
does those clients seems to ignore the parameter? In the documentation its
clearly writen thar it is a value negotiated at the connection startup. I
tested the reduction of the BUFFER_SIZE in version 2 and it also didn't
work with win95/98/NT/smbclient. Is there any other modification I could
do to reduce the use of the servers' resources (memory)?
Is there any parameter I could set in the clients to fix the
problem? Maybe in the registry? The courious thing is that we have a
strong and expensive support from Microsoft. Yesterday I spent one hour
and a half in a call talking to somebody from Microsoft. After many tries
and asking his friends, the technical consultor told me that there is no
solution to the problem. So I asked if is there a possibility that the SMB
protocol does not implement this feature in 95/98/NT and he told me that
it's a strong possibility. Funny, isn't it? They specify their protocol
and don't implement their own specification... As I never trust Microsoft
I'm still trying to find a way out...
Thank you very much,
Carlos E. G. Carvalho
More information about the samba-technical