> The problem was with the shell.  For whatever reason,
> /usr/bin/ksh can't rejoin the files correctly.  When
> I switched to /sbin/sh, the rejoin worked fine, the
> cksum's matched, ...
> 
> The ksh I was using is:
> 
> # what /usr/bin/ksh
> /usr/bin/ksh:
>         Version M-11/16/88i
> SunOS 5.10 Generic 118873-04 Aug 2006
> 
> So, is this a bug in the ksh included with Solaris 10? 

Are you able to reproduce the issue with a script like this
(needs ~ 200 gigabytes of free disk space) ?  I can't...

==============================
% cat split.sh
#!/bin/ksh

bs=1k
count=`expr 57 \* 1024 \* 1024`
split_bs=8100m

set -x

dd if=/dev/urandom of=data.orig bs=${bs} count=${count}
split -b ${split_bs} data.orig data.split.
ls -l data.split.*
cat data.split.a[a-z] > data.join
cmp -l data.orig data.join
==============================


On SX:CE / OpenSolaris the same version of /bin/ksh = /usr/bin/ksh
is present:

% what /usr/bin/ksh
/usr/bin/ksh:
        Version M-11/16/88i
        SunOS 5.11 snv_104 November 2008

I did run the script in a directory in an uncompressed zfs filesystem:

% ./split.sh 
+ dd if=/dev/urandom of=data.orig bs=1k count=59768832
59768832+0 records in
59768832+0 records out
+ split -b 8100m data.orig data.split.
+ ls -l data.split.aa data.split.ab data.split.ac data.split.ad data.split.ae 
data.split.af data.split.ag data.split.ah
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:31 data.split.aa
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:35 data.split.ab
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:39 data.split.ac
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:43 data.split.ad
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:48 data.split.ae
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:53 data.split.af
-rw-r--r--   1 jk       usr      8493465600 Feb 12 18:58 data.split.ag
-rw-r--r--   1 jk       usr      1749024768 Feb 12 18:58 data.split.ah
+ cat data.split.aa data.split.ab data.split.ac data.split.ad data.split.ae 
data.split.af data.split.ag data.split.ah
+ 1> data.join
+ cmp -l data.orig data.join
2002.33u 2302.05s 1:51:06.85 64.5%


As expected, it works without problem. The files are 
bit for bit identical after splitting and joining.

For me this looks more as if your hardware is broken:
    http://opensolaris.org/jive/thread.jspa?messageID=338148

A single bad bit (!) in the middle of the joined file is very suspicious...
-- 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to