Large File Transfers on OpenBSD (fwd)

Jason Coene jason at datahiveserver.com
Mon Apr 1 11:39:02 GMT 2002


Thanks Richard for your quick reply.

> -----Original Message-----
> From: Richard Sharpe <rsharpe at ns.aus.com>
> Sent: April 1, 2002, 12:52 PM
> Subject: Re: Large File Transfers on OpenBSD (fwd)
>
>> Ive been debugging some problems with transferring large amounts of data on OpenBSD+Samba. Getting or Putting files upwards of 500 MB just seem to stop randomly, this is on OpenBSD systems 2.8, 2.9, and 3.0 acting as the server.
>
>Hmmm, which version of Samba?
>

All test machines are running 2.2.3a

>> I've tried transferring files using:
>>  - smbclient put file from openbsd to openbsd
>>  - smbclient put file from openbsd to win2k
>>  - win2k get file from openbsd
>>  - win2k copy file from openbsd to openbsd
>> 
>> The copies from win explorer return error "The specified network name 
>> is no longer available"
>
>Hmmm, I have seen this error on FreeBSD 4.3, but not related to this 
>problem. It looks like the smbd serving your client has died or is no 
>longer responding.

Thats the impression I got, however it does not seem that the child that is serving the client actually dies or gets killed, i'll be doing some more work with this later today.

> 
>> The puts from smbclient die with "Profiling timer expired"
>> 
>> Modifying socket options in smb.conf do effect when it happens, the 
>> lower SNDBUF/RCVBUF, the shorter it takes to time out.
>> 
>> Using debug level = 4, here is what happens just as windows gives the error:
>> 
>> [2002/03/31 12:14:43, 4] smbd/uid.c:change_to_user(118)
>>   change_to_user: Skipping user change - already user
>> [2002/03/31 12:14:43, 3] smbd/reply.c:reply_read_and_X(2382)
>>   readX fnum=4442 min=61440 max=61440 nread=61440
>> [2002/03/31 12:14:43, 3] smbd/process.c:process_smb(860)
>>   Transaction 9557 of length 63
>> [2002/03/31 12:14:43, 3] smbd/process.c:switch_message(667)
>>   switch message SMBreadX (pid 3330)
>> [2002/03/31 12:14:43, 4] smbd/uid.c:change_to_user(118)
>>   change_to_user: Skipping user change - already user
>> [2002/03/31 12:14:43, 3] smbd/reply.c:reply_read_and_X(2382)
>>   readX fnum=4442 min=61440 max=61440 nread=61440
>> [2002/03/31 12:14:43, 3] smbd/process.c:process_smb(860)
>>   Transaction 9558 of length 63
>> [2002/03/31 12:14:43, 3] smbd/process.c:switch_message(667)
>>   switch message SMBreadX (pid 3330)
>> [2002/03/31 12:14:43, 4] smbd/uid.c:change_to_user(118)
>>   change_to_user: Skipping user change - already user
>> [2002/03/31 12:14:43, 3] smbd/reply.c:reply_read_and_X(2382)
>>   readX fnum=4442 min=20480 max=20480 nread=20480
>> 
>> Then 2 seconds later:
>> 
>> [2002/03/31 12:14:45, 3] smbd/oplock.c:init_oplocks(1184)
>>   open_oplock_ipc: opening loopback UDP socket.
>> [2002/03/31 12:14:45, 3] lib/util_sock.c:open_socket_in(798)
>>   bind succeeded on port 0
>> [2002/03/31 12:14:45, 3] smbd/oplock.c:init_oplocks(1215)
>>   open_oplock ipc: pid = 3331, global_oplock_port = 42042
>> [2002/03/31 12:14:45, 4] lib/time.c:get_serverzone(122)
>>   Serverzone is 18000
>> [2002/03/31 12:14:45, 3] smbd/process.c:process_smb(860)
>>   Transaction 0 of length 72
>> [2002/03/31 12:14:45, 2] smbd/reply.c:reply_special(92)
>>   netbios connect: name1=OBSD30T         name2=JASON2
>> [2002/03/31 12:14:45, 2] smbd/reply.c:reply_special(111)
>>   netbios connect: local=obsd30t remote=jason2
>> [2002/03/31 12:14:45, 3] smbd/process.c:process_smb(860)
>>   Transaction 1 of length 137
>> [2002/03/31 12:14:45, 3] smbd/process.c:switch_message(667)
>>   switch message SMBnegprot (pid 3331)
>> [2002/03/31 12:14:45, 3] smbd/sec_ctx.c:set_sec_ctx(314)
>>   setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0
>> [2002/03/31 12:14:45, 3] smbd/negprot.c:reply_negprot(348)
>>   Requested protocol [PC NETWORK PROGRAM 1.0]
>> 
>> [More protocol negotiation stuff, and directory refresh by windows]
>> 
>> I bumped log level up to 5, but nothing stuck out at me. Does anyone 
>> know of anything that might be creating this problem?
>> 
>> Here are some additional tidbits of potentially useful information:
>> 
>>  - If we try the file copy more than 1 time without restarting smbd, it 
>>    seems to die quicker on additional tries.
>> 
>>  - Sometimes I can copy a 500mb file fine, but not 1/3 of a 1g file.
>> 
>>  - Hardware differs:
>>    2.8: via 686a chipset, intel 1g cpu, realtek ethernet
>>    2.9: 440bx chipset, intel 500m cpu, intel ethernet
>>    3.0: via 686b chipset, intel 1g cpu, intel ethernet
>> 
>>  - all 100mbps ethernet, however note that this problem does NOT happen 
>>    when on a 10mbit hub.
>> 
>> Any ideas of what this could be?
>
>Hmmm, 100MB from FreeBSD 4.3 to Win2K over 100Mbps works OK, as does 
>200MB, and 400MB and 800MB.
>
>We might need to see a network trace of the portion that fails, and 
>perhaps a higher level log trace as well.

I'll get ethereal going on a win2k machine that will do the transfer tests. I'll also bump up the log level a few notches.

>
>BTW, what does datahiveserver do?
>

Easy to use Hardware/software network servers based on OpenBSD :)

Thanks,

Jason




More information about the samba-technical mailing list