Date: Fri, 17 Aug 2007 22:10:11 GMT From: linimon@lonesome.com (Mark Linimon) To: freebsd-geom@FreeBSD.org Subject: Re: kern/115572: [gbde] gbde partitions fail at 28bit/48bit LBA addressing boundary Message-ID: <200708172210.l7HMABfI059697@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/115572; it has been noted by GNATS. From: linimon@lonesome.com (Mark Linimon) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/115572: [gbde] gbde partitions fail at 28bit/48bit LBA addressing boundary Date: Fri, 17 Aug 2007 17:07:53 -0500 ----- Forwarded message from Graham <gbradley@rocketmail.com> ----- further to yesterday, I run this sequence... 1. init and attach a gbde volume, 2. write zeros from start of the volume, in 1GiB bursts, until dd hits an i/o error, 3. detach gbde volume this error came after 121GiB written. Then I have run a repeated sequence of... 1. init and attach a gbde volume, 2. write using dd 1GiB of zeros starting 121 GiB into the device 3. detach gbde volume like this..... #! /usr/local/bin/bash # trap 'gbde detach ad4;exit 9' 1 2 3 13 15 # while [ 0 -eq 0 ] do gbde init ad4 -P password gbde attach ad4 -p password START=1982464 COUNT=16384 dd if=/dev/zero of=/dev/ad4.bde bs=64k oseek=$START count=$COUNT gbde detach ad4 done exit 3 # (and then I checked smartctl for no errors on the drive.) which gives an i/o error at different block counts, always with an LBA at or more often just a few sectors below the LBA=268435455 The gbde-volume block offsets at error are much more varied, and a significant proportion of the tests do not show errors in this test. I have read the paper by Poul-Henning Kamp "GBDE-GEOM Disk Based Encryption" and it is clear that the gbde volume's sector addresses are mapped on the physical drive in a non-repeatable way each time "init" takes place. This explains the movable nature of the error, and the symptoms perceived by the user when a filesystem is written in geom can vary according to whether the tripwire LBA address gets mapped to data, inodes, or superblock. I am afraid this sounds much like a mapping consistency issue in GBDE, the mapping is quite complex, and I expect there are others better placed to know where to look for it. I am happy to help if you wish, there is a long-standing issue here needs fixing, but I would need a prompt towards finding the code which implements the mapping. regards Graham ----- End forwarded message -----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708172210.l7HMABfI059697>