Wednesday, January 5, 2011

Why Apple will never be an enterprise player.

Apple is kind of like the rich kid in high school who was an asshole, but everyone liked him because he had money.  I try to like Apple and their products, but the more I get to know them, the less I like them.  Besides the censorship and their situation with Adobe on their mobile devices, anytime I have to deal with their "enterprise technology" I am disappointed at the little things that break.  Yesterday was one of those days....

I have had an issue for several months now where when a PC connects to an SMB share on my OSX 10.6 server, it behaves strangely.  I can upload any file I want of any size I want to the Apple server, but when I try to pull the file down it errors out saying, "file is no longer accessible."  Another weird part is it gets extremely close to being done before it fails.  (For example, with a 6G file, it was within 20mb of completing, and with a 28k file, it copied more than 26k of it.)

I spent many, many hours Googling for a solution over the span of 6 months.  (Using USB drives for the rare occasion that files had to be transferred... and used sneaker-net to move them.)  Most of the solutions I found on forums blamed the PC and FAT file systems... you could tell they were written by mac-fanboys who don't have any idea about what they are talking about.  But enough about that rant, let me give you the answer.

It turns out that Samba was the problem.  So after reading about how the version of SMB that is distributed with OSX is way old, I started investigating how to up grade Samba to the latest edition (oh, btw, you use MACPORTS for that).  While I was waiting for the 8.9G of Apple developer tools to install so I could install MACPORTS, I by chance found another article or two:

ARE YOU FUCKING KIDDING ME APPLE?!?  You (YET AGAIN) release an update to something for your "enterprise-level" applications and FORGET TO TEST IT WITH SOMETHING AS SIMPLE AS SAMBA?  Not only that, but YOU CAN'T WRITE A DAMN SCRIPT TO FIX THE PROBLEM WHEN YOU FIND IT?

So it turns out that Samba shares "all" of the file, including the "Extended Attributes" that are specific to the XSAN file system.  Windows gets the file from the server, then when it receives the EA part it doesn't know what to do with them (as EA is not a Windows kind of thing) and discards the file with an error.  I made the change described in the KB article above and everything works fine now. (the solution is to change "stream support = yes" to "stream support = no" in /etc/smb.conf) .

So... I hope this post finds someone someday who might have the same problem that I did and may come across this post that might perhaps save a bit of their sanity.

Thanks internet for letting me rant.....


And now for some terms that I used to try to find this problem that may help this article be found by someone in need:

the item can't be found
file disappear after copy
SMB mac
samba mac
mac windows compatibility
stream support = no
extended attributes
xsan and samba
xsan and smb
file copy to pc almost completes
file copy from xserve almost completes
Apple file sharing problem
apple file sharing issue
file size issue with SMB
file size issue with samba
smb connection issue
samba connection issue
windows osx samba
windows pull file from xsan
Problem connecting to my Windows (SMB) share in 10.6