Large File Transfers on OpenBSD

Jason Coene jason at datahiveserver.com
Sun Mar 31 17:29:02 GMT 2002


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.

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"

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?


Thanks,

Jason




More information about the samba-technical mailing list