Subject: Re: Corrupt data when reading filesystems under Linux guest
To: None <port-xen@NetBSD.org>
From: Jed Davis <jdev@panix.com>
List: port-xen
Date: 07/09/2005 03:33:36
In article <20050708130854.GA28102@antioche.lip6.fr>,
Manuel Bouyer  <bouyer@antioche.lip6.fr> wrote:
> Hi,
> can you give more details about the setup exibiting this problem ?
> Which linux kernel, which distrib, which filesystems, what activity is 
> triggering this, etc.
> 
> I couldn't reproduce this problem on my test systems ...

I think I've finally minimized this to a sufficiently transportable
form.  The key variable, at least for disks with filesystems on them (as
opposed to being read with dd), appears to be the filesystem block size.

DomU kernel: The 2.6.11.10 binary from the xen 2.0.6 tarball.
Dom0 kernel: NetBSD 3.0_BETA (XEN0) #0: Fri Jun 10 14:15:45 UTC 2005  builds@works.netbsd.org:/home/builds/ab/netbsd-3/i386/200506090000Z-obj/home/builds/ab/netbsd-3/src/sys/arch/i386/compile/XEN0
  (among others)
Xen config file:

  kernel = "/kernels/vmlinuz-2.6.11.10-xenU"
  memory = 64
  name = "lintest"
  nics = 1
  disk = [ 'phy:/dev/vnd0d,0x805,w' ]
  root = "/dev/sda5 ro"

vnd0 image: http://www.panix.com/~jld/lintest.img.gz

Expected outcome:
  [...]
  VFS: Mounted root (ext2 filesystem) readonly.
  Freeing unused kernel memory: 112k freed
  Stand-alone shell (version 3.7)
  > 

What actually happens:
  [...]
  VFS: Mounted root (ext2 filesystem) readonly.
  Freeing unused kernel memory: 112k freed
  attempt to access beyond end of device
  sda5: rw=0, want=2576980378, limit=20480
  Buffer I/O error on device sda5, logical block 3435973836
  attempt to access beyond end of device
  sda5: rw=0, want=2576980378, limit=20480
  Buffer I/O error on device sda5, logical block 3435973836
  [...]

-- 
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))