This article originally appeared in TidBITS on 2009-11-10 at 5:17 p.m.
The permanent URL for this article is: http://tidbits.com/article/10743
Include images: Off

A Finder-Copying Bug in Snow Leopard

by Matt Neuburg

Here's a bug in Snow Leopard that I've isolated. I haven't seen it reported elsewhere (not in precisely this form, at least), so I'll describe it and let you reproduce it for yourself. You'll need two computers, one of them running Snow Leopard.


Preparation -- Let's call the machines A and B. Machine A must be running Snow Leopard. I don't much care what Machine B is running; I've tested with Machine B running either Leopard or Snow Leopard, and it makes no difference. Machine B must have File Sharing turned on. Once that's done, you will work entirely at Machine A.


Performance -- To see the bug, perform (on Machine A) the following steps:

  1. Mount Machine B on Machine A (via File Sharing). So, you're still working at Machine A, but in Machine A's Finder you can see Machine B's folders.
  2. Download The Omni Group's OmniDazzle, using this link [1]. (The bug likely has nothing to do with Omni's applications per se, but many of them demonstrate the bug, so I've picked a small one that does.)
  3. If it hasn't automatically opened and mounted, open the downloaded .dmg file. Accept the legal agreement. You are now looking at the OmniDazzle application on the mounted OmniDazzle volume.
  4. Drag the OmniDazzle application from the mounted OmniDazzle volume to a folder of Machine B to copy it. You can't do it; the Finder puts up a dialog reporting Error -36. That's the bug.

  5. [image link] [2]


Further Details -- The bug has nothing to do with the fact that the OmniDazzle application is initially on a mounted .dmg image. I just had you start with the mounted .dmg image for the sake of simplicity. If you copy OmniDazzle to Machine A (say, to the Desktop) and then try to copy that copy to Machine B, you'll still get the bug.

The bug is unidirectional. You can't copy OmniDazzle from Machine A to Machine B, but you can copy it from Machine B to Machine A (assuming you are working at Machine A).

The bug seems to affect only applications, but I'm not entirely sure about that. Moreover, it doesn't affect every application; as I said before, it affects most of Omni's applications, so I'm using one of them for demonstration purposes.

The bug has to do with File Sharing. If Machine A and Machine B are connected in some other way - for example, if Machine B is mounted in FireWire Target Mode on Machine A - there's no problem.

The bug has to do with Snow Leopard. If Machine A is running Leopard, there's no problem.

The bug has to do with the Finder. If you perform the copy using the Unix cp command in the Terminal, the copy succeeds. (A sample Terminal command is provided below; don't do this, though, unless you already understand cp, because the syntax here is tricky and there is some danger if you make a mistake.)

cp -a /Volumes/OmniDazzle/OmniDazzle.app /Volumes/mattleopard/Desktop/

When using cp in this way, some error messages do appear in the Terminal, but they don't seem to be fatal: the whole application is copied, and will run successfully on the remote machine. In fact, I wonder whether these error messages have something to do with the Finder's error message. Perhaps some reader who understands extended attributes and symbolic links better than I do can explain what's going on here.

[1]: http://www.omnigroup.com/download/latest/OmniDazzle.dmg
[2]: http://www.tidbits.com/resources/2009-11/Finder-copy-error.png