mkhaw@teknowledge-vaxc.ARPA (Michael Khaw) (08/12/87)
I try to do the following from a DN3000 running SR 9.2.5, Domain/IX 9.2, and TCP 9.2(?): tar cBf - src_dir | rsh vax 'cd dest_dir; tar xBf -' I get a checksum error from the remote tar. I've also tried substituting various combinations of explicit blocking factors in place of the "B" option to no avail. Not that I expect it to make any difference, but the DN3000 is going through a gateway DN560 to the ethernet to an Ultrix 1.2 VAX. This kind of pipe works with real Unix boxes of both SysV and 4bsd persuasions. Why doesn't it work under Domain/IX? (No cutesy replies about Apollos not being real Unix boxes, please -- I'm already convinced of that). Mike Khaw -- internet: mkhaw@teknowledge-vaxc.arpa usenet: {hplabs|sun|ucbvax|decwrl|sri-unix}!mkhaw%teknowledge-vaxc.arpa USnail: Teknowledge Inc, 1850 Embarcadero Rd, POB 10119, Palo Alto, CA 94303
tonyd@apollo.uucp (Tony Drogaris) (08/13/87)
In article <15554@teknowledge-vaxc.ARPA> mkhaw@teknowledge-vaxc.ARPA (Michael Khaw) writes: >I try to do the following from a DN3000 running SR 9.2.5, Domain/IX 9.2, >and TCP 9.2(?): > > tar cBf - src_dir | rsh vax 'cd dest_dir; tar xBf -' > >I get a checksum error from the remote tar. This will happen (at least occasionally) with any pair of machines. The frequency of occurence depends upon the relative speeds of the machines and the network connection. The problem is that the network connection is not guaranteed to pass any particular blocksize atomically and tar expects to read entire blocks in one read. ie., the read call in tar looks like: if (read(f, buf, blksize) != blksize) { /* barf with checksum error */ } The network socket will return whatever data it has. If it's less than blksize bytes, too bad. The solution is to use dd to feed tar whatever size blocks it wants: tar cBf - src_dir | rsh vax 'cd dest_dir; dd | tar xf -' (If you want, you can block between dd and tar by using dd's obs=xxx option.) -- Tony Drogaris UUCP: ...{attunix,uw-beaver,decvax!wanginst}!apollo!tonyd Apollo Computer ARPA: apollo!tonyd@eddie.mit.edu INTERNET: tonyd@apollo.com