linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Allison Henderson <achender@linux.vnet.ibm.com>
To: "Ted Ts'o" <tytso@mit.edu>
Cc: linux-ext4@vger.kernel.org
Subject: Re: [PATCH 5/6 v5] ext4: fix fsx truncate failure
Date: Mon, 22 Aug 2011 19:51:26 -0700	[thread overview]
Message-ID: <4E5315AE.7080502@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110823023618.GA6544@thunk.org>

On 08/22/2011 07:36 PM, Ted Ts'o wrote:
> On Sat, Aug 20, 2011 at 07:29:46PM -0700, Allison Henderson wrote:
>> This patch corrects a bug found during extended fsx
>> testing for the first two patches.
>>
>> This bug is caused because the truncate routine only zeros
>> the unblock aligned portion of the last page.  This means
>> that the block aligned portions of the page appearing after
>> i_size are left unzeroed, and the buffer heads still mapped.
>>
>> This bug is corrected by using ext4_discard_partial_page_buffers
>> in the truncate routine to zero the partial page and unmap
>> the buffer headers
>>
>> Signed-off-by: Allison Henderson<achender@linux.vnet.ibm.com>
>
> This patch is causing a failure in xfstests #130.  When I bisected it,
> the "git bisect finger of blame" pointed to this commit.  (This is
> commit 83eb170d4 on the "dev" branch on the ext4.git tree at the moment).
>
>         		    	      	     	    	     - Ted
Alrighty, I'll take a look at it, thx!

Allison Henderson

>
>
> Running local boot scripts (/etc/rc.local)
> FSTESTCFG is "all"
> FSTESTSET is "130"
> umount: /dev/vdb: not mounted
> umount: /dev/vdd: not mounted
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdb: 6030/327680 files (3.1% non-contiguous), 77032/1310720 blocks
> BEGIN TEST: Ext4 4k block Mon Aug 22 22:27:54 EDT 2011
> Device: /dev/vdb
> mke2fs options: -q
> mount options: -o block_validity
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity /dev/vdc /vdc
>
> 130 11s ... - output mismatch (see 130.out.bad)
> --- 130.out	2011-08-12 00:06:32.000000000 -0400
> +++ 130.out.bad	2011-08-22 22:27:57.550000003 -0400
> @@ -4,8 +4,9 @@
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>   wrote 65536/65536 bytes at offset 65536
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -00000000:  63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  c...............
> -00000010:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> +00000000:  63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63  cccccccccccccccc
> +*
> +00001000:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>   *
>   00010000:  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
>   *
> Ran: 130
> Failures: 130
> Failed 1 of 1 tests
> END TEST: Ext4 4k block Mon Aug 22 22:27:57 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdb: 6030/327680 files (3.1% non-contiguous), 77032/1310720 blocks
> BEGIN TEST: Ext4 4k block w/nodelalloc and no extents Mon Aug 22 22:27:58 EDT 2011
> Device: /dev/vdd
> mke2fs options: -q -O ^extents
> mount options: -o block_validity,nodelalloc
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q -O ^extents /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity,nodelalloc /dev/vdc /vdc
>
> 130 11s ... 3s
> Ran: 130
> Passed all 1 tests
> END TEST: Ext4 4k block w/nodelalloc and no extents Mon Aug 22 22:28:01 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdd: 11/327680 files (0.0% non-contiguous), 55935/1310720 blocks
> BEGIN TEST: Ext4 4k block w/ no journal Mon Aug 22 22:28:01 EDT 2011
> Device: /dev/vdb
> mke2fs options: -q -O ^has_journal
> mount options: -o block_validity,noload
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q -O ^has_journal /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity,noload /dev/vdc /vdc
>
> 130 3s ... - output mismatch (see 130.out.bad)
> --- 130.out	2011-08-12 00:06:32.000000000 -0400
> +++ 130.out.bad	2011-08-22 22:28:04.490000003 -0400
> @@ -4,8 +4,9 @@
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>   wrote 65536/65536 bytes at offset 65536
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -00000000:  63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  c...............
> -00000010:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> +00000000:  63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63  cccccccccccccccc
> +*
> +00001000:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>   *
>   00010000:  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
>   *
> Ran: 130
> Failures: 130
> Failed 1 of 1 tests
> END TEST: Ext4 4k block w/ no journal Mon Aug 22 22:28:04 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdb: 6030/327680 files (3.1% non-contiguous), 77032/1310720 blocks
> BEGIN TEST: Ext4 1k block Mon Aug 22 22:28:05 EDT 2011
> Device: /dev/vdd
> mke2fs options: -q -b 1024
> mount options: -o block_validity
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q -b 1024 /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity /dev/vdc /vdc
>
> 130 3s ... - output mismatch (see 130.out.bad)
> --- 130.out	2011-08-12 00:06:32.000000000 -0400
> +++ 130.out.bad	2011-08-22 22:28:08.160000004 -0400
> @@ -4,8 +4,9 @@
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>   wrote 65536/65536 bytes at offset 65536
>   XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -00000000:  63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  c...............
> -00000010:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> +00000000:  63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63  cccccccccccccccc
> +*
> +00000400:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>   *
>   00010000:  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
>   *
> Ran: 130
> Failures: 130
> Failed 1 of 1 tests
> END TEST: Ext4 1k block Mon Aug 22 22:28:08 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdd: 11/327680 files (0.0% non-contiguous), 119861/5242880 blocks
> BEGIN TEST: Ext4 4k block w/bigalloc Mon Aug 22 22:28:08 EDT 2011
> Device: /dev/vdd
> mke2fs options: -q -O bigalloc
> mount options: -o block_validity
> 000 - unknown test, ignored
> [1825745.459201] EXT4-fs (vdd): couldn't mount RDWR because of unsupported optional features (200)
> mount: wrong fs type, bad option, bad superblock on /dev/vdd,
>         missing codepage or helper program, or other error
>         In some cases useful info is found in syslog - try
>         dmesg | tail  or so
>
> common.rc: retrying test device mount with external set
> [1825745.488666] EXT4-fs (vdd): couldn't mount RDWR because of unsupported optional features (200)
> mount: wrong fs type, bad option, bad superblock on /dev/vdd,
>         missing codepage or helper program, or other error
>         In some cases useful info is found in syslog - try
>         dmesg | tail  or so
>
> common.rc: could not mount /dev/vdd on /vdd
> END TEST: Ext4 4k block w/bigalloc Mon Aug 22 22:28:08 EDT 2011
> umount: /dev/vdd: not mounted
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdd: 11/81936 files (0.0% non-contiguous), 38032/1310720 blocks
> BEGIN TEST: Ext4 4k block w/data=journal Mon Aug 22 22:28:08 EDT 2011
> Device: /dev/vdb
> mke2fs options: -q
> mount options: -o block_validity,data=journal
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity,data=journal /dev/vdc /vdc
>
> [1825745.927937] EXT4-fs: Warning: mounting with data=journal disables delayed allocation and O_DIRECT support!
> 130 3s ... 2s
> Ran: 130
> Passed all 1 tests
> END TEST: Ext4 4k block w/data=journal Mon Aug 22 22:28:12 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdb: 6030/327680 files (3.1% non-contiguous), 77032/1310720 blocks
> BEGIN TEST: Ext4 4k block w/dioread_nolock Mon Aug 22 22:28:12 EDT 2011
> Device: /dev/vdb
> mke2fs options: -q
> mount options: -o block_validity,dioread_nolock
> 000 - unknown test, ignored
> FSTYP         -- ext4
> PLATFORM      -- Linux/x86_64 candygram 3.1.0-gcg-DEV
> MKFS_OPTIONS  -- -q /dev/vdc
> MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity,dioread_nolock /dev/vdc /vdc
>
> [1825749.476751] EXT4-fs (vdc): can't mount with dioread_nolock if block size != PAGE_SIZE
> our local mount routine ...
> mount: wrong fs type, bad option, bad superblock on /dev/vdc,
>         missing codepage or helper program, or other error
>         In some cases useful info is found in syslog - try
>         dmesg | tail  or so
>
> check: failed to mount $SCRATCH_DEV using specified options
> Passed all 0 tests
> END TEST: Ext4 4k block w/dioread_nolock Mon Aug 22 22:28:12 EDT 2011
> e2fsck 1.42-WIP (02-Jul-2011)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/vdb: 6030/327680 files (3.1% non-contiguous), 77032/1310720 blocks
> INIT: Switching to runlevel: 0
> INIT: Sending processes the TERM signal
> error: 'stop-bootlogd' exited outside the expected code flow.
> Using makefile-style concurrent boot in runlevel 0.
> Saving random seed...done.
> Stopping quota service: rpc.rquotad.
> Turning off quotas...quotaoff: Warning: No quota format detected in the kernel.
> done.
> Asking all remaining processes to terminate...done.
> All processes ended within 1 seconds....done.
> Deconfiguring network interfaces...done.
> Cleaning up ifupdown....
> Saving the system clock.
> Hardware Clock updated to Mon Aug 22 22:28:15 EDT 2011.
> Will now unmount temporary filesystems:tmpfs has been unmounted
> .
> Will now deactivate swap:.
> Mounting root filesystem read-only...done.
> Will now halt.
> [1825755.423049] Power down.
> EXIT_SUCCESS


  reply	other threads:[~2011-08-23  2:51 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-21  2:29 [PATCH 0/6 v5] ext4: fix 1k block bugs Allison Henderson
2011-08-21  2:29 ` [PATCH 1/6 v5] ext4: Add new ext4_discard_partial_page_buffers routines Allison Henderson
2011-08-22  2:38   ` Ted Ts'o
2011-08-22 14:33     ` Allison Henderson
2011-08-21  2:29 ` [PATCH 2/6 v5] ext4: fix xfstests 75, 112, 127 punch hole failure Allison Henderson
2011-08-21  2:29 ` [PATCH 3/6 v5] ext4: fix 2nd xfstests " Allison Henderson
2011-08-21  2:29 ` [PATCH 4/6 v5] ext4: Correct large hole offset calcuation Allison Henderson
2011-08-22 15:50   ` Eric Sandeen
2011-08-22 17:19     ` Allison Henderson
2011-08-21  2:29 ` [PATCH 5/6 v5] ext4: fix fsx truncate failure Allison Henderson
2011-08-23  2:36   ` Ted Ts'o
2011-08-23  2:51     ` Allison Henderson [this message]
2011-08-21  2:29 ` [PATCH 6/6 v5] ext4: fix partial page writes Allison Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E5315AE.7080502@linux.vnet.ibm.com \
    --to=achender@linux.vnet.ibm.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).