Solution to my read problem 'Broken pipe' 'write_socket_data'
MCCALL,DON (HP-USA,ex1)
don_mccall at hp.com
Tue Mar 6 04:13:19 GMT 2001
Hi Lei,
I had a similar problem on a port of 2.07 (and 2.2) to MPE/iX os. The
maximum amount of data that the sockets implementation on MPE/iX could
handle was 30,000, so I had to 'throttle' the write_socket_data() and
read_socket_data() for only 30,000 bytes at a time.
for read_socket_data()
#ifdef mpeix
if (N - total > 30000)
ret = read(fd,buffer + total,30000);
else
#endif /* mpeix */
...
and for write_socket-data()
#ifdef mpeix
if (N - total > 30000)
re ret = send(fd,buffer + total,30000,0);
else
#endif /* mpeix */
...
But I think this was an MPE/iX os specific problem, as I have never seen
the need for this on HP-UX...
Thanks for the tip!
Don
-----Original Message-----
From: Lei Zhang [mailto:lzhang at colorado.edu]
Sent: Monday, March 05, 2001 22:18
To: samba at us5.samba.org
Cc: Dany; David Rankin
Subject: Solution to my read problem 'Broken pipe' 'write_socket_data'
Hi,
The only reason I use Samba is I want to connect my linux desktop with
my windows laptop and share the larger disk with the laptop. I got weird
problem that I could only write to the samba server but I could not read
from it with errors like:
[2001/03/04 16:36:38, 0] lib/util_sock.c:write_socket_data(540)
write_socket_data: write failure. Error = Broken pipe
[2001/03/04 16:36:38, 6] lib/util_sock.c:write_socket(563)
write_socket(10,61503) wrote -1
[2001/03/04 16:36:38, 0] lib/util_sock.c:write_socket(566)
write_socket: Error writing 61503 bytes to socket 10: ERRNO = Broken
pipe
[2001/03/04 16:36:38, 0] lib/util_sock.c:send_smb(754)
Error writing 61503 bytes to client. -1. Exiting
I tried some suggestions on name resolution but it did not work. I had
intranet before which the name was totally controlled by my linux box,
so I doubted this was not the real reason for me. I finally recognized
it was problem with socket(mighte be obvious from the log, but who knows
it was the socket itself caused the problem) Actually I ran win98/w2k
using vmware and connected them to linux by host-only virtual network
and there was no problem on these two systems, and there was only read
problem, no write problem on the real network-linked windows system. I
reviewed the code, and it seemed to me that the reason for 'Broken pipe'
was from 'send' function called by write_socket_data, then I read
smb.conf, and I came across the following lines:
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
# Rather, the options do NOT work in some cases
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
After several trials, I modified the socket options to:
socket options = TCP_NODELAY SO_RCVBUF=8192
ie, simply deleted the SO_SNDBUF=8192
Then, everything works perfectly now!
I suggest that if anyone meets such 'write_sock_data', 'Broke pipe', etc
errors, try something on this command first, or use different network
interface to see if errors occur in that case.
with regards
Lei
--
To unsubscribe from this list go to the following URL and read the
instructions: http://lists.samba.org/mailman/listinfo/samba
More information about the samba
mailing list