Comment 143 for bug 509180

Revision history for this message
Ian! D. Allen (idallen) wrote :

See also my comments #104, #128, #129, #131, #132, #134, #141.

The above ecryptfs corruption is reduced but not gone in Ubuntu 11.10 Oneiric:

    Linux ubuntu 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

I repeatedly ran md5sum on a read-only ecryptfs partition with 18GB of files (many with multiple hard links) and the md5sum results *changed* on a few files on some of the runs.

It took many more runs (several dozen) to discover the corruption than when using the 2.6.38 kernel, and *only* the md5sums changed between runs, not the file sizes as well as was true with 2.6.38. I also saw the corruption on files with only one link, where under 2.6.38 it seemed to happen only on files with more than one link.

I'm running these tests using a VMware install of a fully-updated Ubuntu 11.10 Oneiric with a separate 32GB virtual disk containing the 18GB ecryptfs partition.

I'm looping a full md5sum of all 18GB in one terminal window and in a second window I'm looping a simultaneous md5sum of a 4.2GB subdirectory. When corruption happens, both windows show it happening on the same file(s). Out of 48 runs over the full 18GB so far, four runs turned up files with different checksums. In the other loop, out of 171 runs over the 4.2GB subdirectory so far, 11 runs turned up files with different checksums.

I did see some kern.log errors early in the testing process:

Oct 20 14:57:49 ubuntu kernel: [ 65.128562] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
Oct 20 16:04:30 ubuntu kernel: [ 4066.054573] ecryptfs_decrypt_page: Error attempting to read lower page; rc = [-4]
Oct 20 16:04:30 ubuntu kernel: [ 4066.054580] ecryptfs_readpage: Error decrypting page; rc = [-4]
Oct 20 16:47:30 ubuntu kernel: [ 6645.362178] ecryptfs_decrypt_page: Error attempting to read lower page; rc = [-4]
Oct 20 16:47:30 ubuntu kernel: [ 6645.362263] ecryptfs_readpage: Error decrypting page; rc = [-4]

Those errors all appeared long before the runs showing corruption.

/dev/sdb1 on /mnt/sdb1 type ext4 (ro)
/mnt/sdb1/idallen-ecryptfs/.Private on /home/idallen-ecryptfs type ecryptfs (ro,ecryptfs_unlink_sigs,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_sig=xxxxxxxxxxxxxxxx,ecryptfs_fnek_sig=yyyyyyyyyyyyyyyy)