n8blog
distraction in action

Like my work? Check out HexaLex, my game for iPhone & iPod Touch. It's a crossword game like Scrabble, but played with hexagonal tiles. http://www.hexalex.com

Hi folks,

I just uploaded Backup Bouncer 0.1.2 for your backup-tool-testing pleasure. Get it at the usual place. Not a whole lot has changed, but there’s a fix to extended attribute handling that solves some problems in Leopard. Andreas Fuchs provided a patch for this and also mentioned that SuperDuper can’t handle dangling symlinks! I haven’t verified this, but if it’s true it’s a pretty huge failure for an otherwise excellent tool. In any case, I added a case to the symlink test to check for it.

I’ve also added a check for extended attributes on symlinks. This is pretty obscure, but a well-written tool shouldn’t care, since the extended attribute support would be orthogonal to the file type. If your favorite tool fails that test I wouldn’t worry about it too much, but you might want to file a bug report.

In related news, I read a while back that Apple was using xar for packaging in Leopard. After installing Leopard on my own machine I was a bit disappointed to find that Apple has installed xar 1.4, which does not do a good job of preserving metadata:

------------------ xar ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... FAIL
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... FAIL
   Sub-test:       on directories ... FAIL
   Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
   Sub-test:             on files ... FAIL
   Sub-test:              on dirs ... FAIL
FAIL
Verifying:                 fifo ... FAIL
Verifying:              devices ... FAIL
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... FAIL
   Sub-test:     lots of metadata ... FAIL
FAIL

This is a crying shame, since xar 1.5 and later do a great job. Hopefully people won’t pass judgment on xar based on the version shipped with Leopard.

On the other hand, rsync seems to have improved in Leopard:

------------------ rsync-apple ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok
   Sub-test:       on directories ... ok
   Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
   Sub-test:             on files ... ok
   Sub-test:              on dirs ... ok
ok
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... ok
ok
  • Share/Bookmark

  Comments:

1. Štěpán Kříž replies:

There is a bug in xattr-util (part of Backup Bouncer 0.1.2):
xattr-util r … produces no output at all.
This is on line 29, which reads:
write(stdout, buf, …
but should read
write(fileno(stdout), buf, …

2. n8 replies:

Thanks. I think that’s fixed in svn, but I’ll make sure.

3. Patrick Power replies:

Hey, backup bouncer is great. Thanks for writing it.

I wanted to suggest a test for something that I’ve seen rsync have problems with: a combined test of hard links and resource forks. As of somewhere late in the 10.4.x series, Apple’s rsync would silently ignore the resource forks of files that were hard linked to one another, and it would only copy the data fork. It’s been a long time since I tested Apple’s rsync, but I believe that librsync is the basis of Time Machine so it might be interesting to see if the bug is still there in Time Machine. (Admittedly it’s an edge case that few people are likely to hit, but it might be nice to test for completeness.)

Cheers and thanks for a cool piece of software. :-)

4. n8 replies:

Ah, good to know! I’m happy to add tests for edge case bugs like that. After all, it’s easy to get the common stuff right. The true test of a backup solution is how it handles the corner cases.

I’m a bit swamped at the moment but I’ll add the test as soon as I’ve got a bit of time.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Please type this word with the letters reversed: live

Like my work? Check out HexaLex, my game for iPhone & iPod Touch. It's a crossword game like Scrabble, but played with hexagonal tiles. http://www.hexalex.com