binarystream.write to SMB vol from OSX


This one might go under the OSX platform area, but since it involves SMB I thought I would put it in general.

I am using a binary stream to block copy files. I am having issues with >2GB files when I am targeting an SMB volume (a NAS). I start getting things like this in the console

2/11/14 2:20:44.000 PM kernel[0]: smbfs_vnop_strategy: WRITE on failed with an error of 5

Smaller files seem to work fine, and I am not 100% sure about the 2GB threshold, but that has been the trigger between failure and success so far. Copying the same files via cp, or the Finder, or rsync works just fine. I also don’t get a write error in the binary stream so the app has no knowledge that it has failed. The resulting file, when viewed through the Finder shows the correct size but has totally mismatched bytes… ex: for a 5.6 GB file it shows “5,597,761,048 bytes (125.6 MB on disk)”

The documentation states that binary streams can deal with files >2GB and so it seems for other copies, but not to these SMB NAS volumes… the target volumes I have been having issues with are all Linux NAS boxes.

I am running XOJO 2013r4.1 and OSX 10.8.5

At the end of the day all I am looking for is a file copy that will allow me to update the GUI and not have the rest of the GUI freeze (i.e. copyto)

For the moment I will probably just wrap rsync in a shell.



Can you properly copy such files to local (not network), HFS drives? I want to make sure you didn’t accidentally declare something as an Integer instead of UInt64 since, at the moment, an Integer will not exceed 2 GB. (This really shouldn’t be a factor unless you are calling Position, but just to be sure.)

Yes, copy to local volumes, or AFP mounted volumes is fine. I am not calling position… I am just calling .read(size) and .write

 myBlock as string =
  mybstreamout.Write myBlock