Mike Hommey wrote:

Just untar the file, go into the created directory, run "make", then run
"./debugvmfs"

This one crashes..

# ./debugvmfs /dev/sdb3 ls /
Segmentation fault


This is because of an endianness issue in vmfs_inode_read:

   if (inode->mdh.magic != VMFS_INODE_MAGIC)
      return(-1);

Presumably this should go via read_le32, but I just commented it out for my tests.

# ./debugvmfs /dev/sdb3 cat /en_windows_server_2008_datacenter_enterprise_standard_x64_dvd_X14-26714.iso >>/tmp/out.iso
VMFS: i/o spanned over several extents is unsupported
VMFS: i/o spanned over several extents is unsupported
VMFS: i/o spanned over several extents is unsupported
VMFS: i/o spanned over several extents is unsupported
...

etc.


I put some debugging in there to see what was happenening. It starts off OK: # ./debugvmfs /dev/sdb3 cat /en_windows_server_2008_datacenter_enterprise_standard_x64_dvd_X14-26714.iso >/tmp/out.iso
pos=00200000 len=00000200 pos+len=00200200
vmfs_lvm_extent_size = 20000000
pos=00400000 len=00001000 pos+len=00401000
vmfs_lvm_extent_size = 20000000
pos=00418000 len=00001000 pos+len=00419000
vmfs_lvm_extent_size = 20000000
pos=00500000 len=00001000 pos+len=00501000
vmfs_lvm_extent_size = 20000000
pos=00500000 len=00001000 pos+len=00501000
vmfs_lvm_extent_size = 20000000
pos=00500000 len=00001000 pos+len=00501000
vmfs_lvm_extent_size = 20000000

Then suddenly goes bananas:

pos=02ae0000 len=00001000 pos+len=02ae1000
vmfs_lvm_extent_size = 20000000
pos=10020000 len=00001000 pos+len=10021000
vmfs_lvm_extent_size = 20000000
pos=578400000 len=00001000 pos+len=578401000
vmfs_lvm_extent_size = 20000000
VMFS: i/o spanned over several extents is unsupported
pos=10020000 len=00001000 pos+len=10021000
vmfs_lvm_extent_size = 20000000
pos=578401000 len=00001000 pos+len=578402000
vmfs_lvm_extent_size = 20000000
VMFS: i/o spanned over several extents is unsupported
pos=10020000 len=00001000 pos+len=10021000
vmfs_lvm_extent_size = 20000000
pos=578402000 len=00001000 pos+len=578403000
vmfs_lvm_extent_size = 20000000
VMFS: i/o spanned over several extents is unsupported
pos=10020000 len=00001000 pos+len=10021000
vmfs_lvm_extent_size = 20000000
pos=578403000 len=00001000 pos+len=578404000
vmfs_lvm_extent_size = 20000000
VMFS: i/o spanned over several extents is unsupported

It seems that every alternate read is completely wrong from that point on.

Hope this helps

Tony



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to