lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 29 Apr 2015 13:49:08 +0800
From:	Li Xi <pkuelelixi@...il.com>
To:	Dave Chinner <david@...morbit.com>
Cc:	"linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>,
	Ext4 Developers List <linux-ext4@...r.kernel.org>,
	"linux-api@...r.kernel.org" <linux-api@...r.kernel.org>,
	"Theodore Ts'o" <tytso@....edu>,
	Andreas Dilger <adilger@...ger.ca>, Jan Kara <jack@...e.cz>,
	"viro@...iv.linux.org.uk" <viro@...iv.linux.org.uk>,
	"hch@...radead.org" <hch@...radead.org>,
	Dmitry Monakhov <dmonakhov@...nvz.org>
Subject: Re: [v14 3/4] ext4: adds FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR
 interface support

Hi Dave,

Thanks for the advices. I tried to run latest xfstests again. However,
the kernel crashed when runing generic/051 generic/054 and
generic/055. And please note that the kernel also crashed on original
linux-4.0 without any of my patches. Following is one of the dump
stack:

run fstests generic/055 at 2015-04-29 13:43:39
------------[ cut here ]------------
WARNING: CPU: 0 PID: 31915 at lib/list_debug.c:33 __list_add+0xbe/0xd0()
list_add corruption. prev->next should be next (ffffffff81e05018), but
was           (null). (prev=ffff8800d8ff3ca0).
Modules linked in: dm_flakey xfs exportfs libcrc32c nfsv3 nfs_acl
rpcsec_gss_krb5 auth_rpcgss oid_registry nfsv4 nfs fscache lockd grace
sunrpc ipv6 dm_mirror dm_region_hash dm_log dm_mod ppdev floppy
parport_pc parport microcode pcspkr virtio_balloon sg 8139too 8139cp
mii i2c_piix4 i2c_core ext4 jbd2 mbcache sr_mod cdrom sd_mod pata_acpi
ata_generic ata_piix virtio_pci virtio_ring virtio [last unloaded:
speedstep_lib]
CPU: 0 PID: 31915 Comm: kworker/0:0 Not tainted 4.0.0+ #1
Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2007
Workqueue: events vmstat_shepherd
 0000000000000021 ffff8800db177bf8 ffffffff815ccaf6 0000000000000021
 ffff8800db177c48 ffff8800db177c38 ffffffff81059fc5 ffff8800db177c38
 ffffffff81a8d480 ffffffff81e05018 ffff8800d8ff3ca0 0000000000000000
Call Trace:
 [<ffffffff815ccaf6>] dump_stack+0x48/0x5a
 [<ffffffff81059fc5>] warn_slowpath_common+0x95/0xe0
 [<ffffffff8105a0c6>] warn_slowpath_fmt+0x46/0x70
 [<ffffffff812c04fe>] __list_add+0xbe/0xd0
 [<ffffffff810bb84b>] __internal_add_timer+0x9b/0x110
 [<ffffffff810bb8f9>] internal_add_timer+0x39/0x90
 [<ffffffff810bd8c9>] mod_timer+0xf9/0x1d0
 [<ffffffff810bd9b8>] add_timer+0x18/0x30
 [<ffffffff81071a22>] __queue_delayed_work+0x92/0x1a0
 [<ffffffff81071bcd>] queue_delayed_work_on+0x1d/0x40
 [<ffffffff81160d5c>] vmstat_shepherd+0x10c/0x120
 [<ffffffff810722ed>] process_one_work+0x14d/0x440
 [<ffffffff810726ff>] worker_thread+0x11f/0x3d0
 [<ffffffff815ccfaf>] ? __schedule+0x36f/0x800
 [<ffffffff810725e0>] ? process_one_work+0x440/0x440
 [<ffffffff810725e0>] ? process_one_work+0x440/0x440
 [<ffffffff810774ce>] kthread+0xce/0xf0
 [<ffffffff8104d96e>] ? __do_page_fault+0x17e/0x430
 [<ffffffff81077400>] ? kthread_freezable_should_stop+0x70/0x70
 [<ffffffff815d1052>] ret_from_fork+0x42/0x70
 [<ffffffff81077400>] ? kthread_freezable_should_stop+0x70/0x70
---[ end trace 97c6b752be15ac57 ]---
XFS (sdb2): Mounting V4 Filesystem
XFS (sdb2): Ending clean mount
XFS (sdb2): Quotacheck needed: Please wait.
XFS (sdb2): Quotacheck: Done.
XFS (sdb2): xfs_log_force: error -5 returned.
XFS (sdb2): xfs_log_force: error -5 returned.
XFS (sdb2): xfs_log_force: error -5 returned.
BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
IP: [<ffffffff810bbc88>] get_next_timer_interrupt+0x158/0x230
PGD d8e7a067 PUD db654067 PMD 0
Oops: 0000 [#1] SMP
Modules linked in: dm_flakey xfs exportfs libcrc32c nfsv3 nfs_acl
rpcsec_gss_krb5 auth_rpcgss oid_registry nfsv4 nfs fscache lockd grace
sunrpc ipv6 dm_mirror dm_region_hash dm_log dm_mod ppdev floppy
parport_pc parport microcode pcspkr virtio_balloon sg 8139too 8139cp
mii i2c_piix4 i2c_core ext4 jbd2 mbcache sr_mod cdrom sd_mod pata_acpi
ata_generic ata_piix virtio_pci virtio_ring virtio [last unloaded:
speedstep_lib]
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W       4.0.0+ #1
Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2007
task: ffffffff81a134a0 ti: ffffffff81a00000 task.ti: ffffffff81a00000
RIP: 0010:[<ffffffff810bbc88>]  [<ffffffff810bbc88>]
get_next_timer_interrupt+0x158/0x230
RSP: 0018:ffff88011fc03e48  EFLAGS: 00010013
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff81e05008
RDX: 0000000000000001 RSI: 0000000000000011 RDI: ffffffff81e04ef8
RBP: ffff88011fc03ea8 R08: 0000000000000011 R09: 0000000001000551
R10: ffff88011fc03e60 R11: ffff88011fc03e78 R12: 0000000140055030
R13: 0000000100055031 R14: ffffffff81e03ec0 R15: 0000000000000040
FS:  0000000000000000(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000018 CR3: 00000000d8d8f000 CR4: 00000000000006f0
Stack:
 ffff88011fc03e88 ffffffff810bbdf7 ffffffff81e04ef8 ffffffff81e052f8
 ffffffff81e056f8 ffffffff81e05af8 0000000000000000 ffff88011fc0f8a0
 0000000100055031 0000000000000000 ffff88011fc0bfc0 ffffffff81a00000
Call Trace:
 <IRQ>
 [<ffffffff810bbdf7>] ? call_timer_fn+0x47/0x110
 [<ffffffff810cdf1d>] tick_nohz_stop_sched_tick+0x1cd/0x310
 [<ffffffff810ce108>] __tick_nohz_idle_enter+0xa8/0x150
 [<ffffffff810ce1dd>] tick_nohz_irq_exit+0x2d/0x40
 [<ffffffff8105deaf>] irq_exit+0x9f/0xc0
 [<ffffffff815d34aa>] smp_apic_timer_interrupt+0x4a/0x59
 [<ffffffff815d1a3b>] apic_timer_interrupt+0x6b/0x70
 <EOI>
 [<ffffffff8100f100>] ? default_idle+0x20/0xb0
 [<ffffffff8100e74f>] arch_cpu_idle+0xf/0x20
 [<ffffffff810986a9>] cpuidle_idle_call+0x89/0x220
 [<ffffffff81078232>] ? __atomic_notifier_call_chain+0x12/0x20
 [<ffffffff81098975>] cpu_idle_loop+0x135/0x1f0
 [<ffffffff81098a43>] cpu_startup_entry+0x13/0x20
 [<ffffffff815c5e1c>] rest_init+0x7c/0x80
 [<ffffffff81b4e372>] start_kernel+0x3d8/0x3df
 [<ffffffff81b4ddb8>] ? set_init_arg+0x5d/0x5d
 [<ffffffff815cb906>] ? memblock_reserve+0x4c/0x51
 [<ffffffff81b4d5ad>] x86_64_start_reservations+0x2a/0x2c
 [<ffffffff81b4d6e4>] x86_64_start_kernel+0x135/0x13c
Code: 00 48 89 45 c8 45 89 c8 41 83 e0 3f 44 89 c6 0f 1f 40 00 48 63
ce 48 c1 e1 04 48 8b 04 39 48 8d 0c 0f 48 39 c8 74 22 0f 1f 40 00 <f6>
40 18 01 75 10 48 8b 50 10 48 39 da 48 0f 48 da ba 01 00 00
RIP  [<ffffffff810bbc88>] get_next_timer_interrupt+0x158/0x230
 RSP <ffff88011fc03e48>
CR2: 0000000000000018

On Tue, Apr 28, 2015 at 12:43 PM, Dave Chinner <david@...morbit.com> wrote:
> On Tue, Apr 28, 2015 at 10:01:07AM +0800, Li Xi wrote:
>> Hi Dave,
>>
>> I ran xfstests on the kernel with this series of patches.
>> Unfortunately, 5 test suits failed. But I don't think they are caused
>> by this patch. Following is the result. Please let me know if there is
>> any problem about it.
>>
>> Output of xfstests:
>>
>> FSTYP         -- xfs (non-debug)
>> PLATFORM      -- Linux/x86_64 vm15 4.0.0+
>> MKFS_OPTIONS  -- -f -bsize=4096 /dev/sdb2
>> MOUNT_OPTIONS -- /dev/sdb2 /mnt/scratch
>>
>> generic/001 3s ... 2s
>> generic/002 0s ... 0s
>> generic/003 10s ... 10s
>> generic/004     [not run] xfs_io flink support is missing
>> generic/005 0s ... 0s
>> generic/006 1s ... 0s
>> generic/007 0s ... 0s
>> generic/008     [not run] xfs_io fzero support is missing
>> generic/009     [not run] xfs_io fzero support is missing
>> generic/010 1s ... 0s
>> generic/011 1s ... 0s
>> generic/012     [not run] xfs_io fpunch support is missing
>> generic/013 92s ... 90s
>> generic/014 3s ... 3s
>> generic/015 1s ... 1s
>> generic/016     [not run] xfs_io fpunch support is missing
>> generic/017     [not run] xfs_io fiemap support is missing
>> generic/018     [not run] xfs_io fiemap support is missing
>
> You really need to update your xfsprogs install. You aren't testing
> half of what you need to be testing if you are missing basic
> functionality like fiemap support (which has been in xfs_io since
> 2011).
>
>> generic/020 38s ... 31s
>> generic/021     [not run] xfs_io fpunch support is missing
>> generic/022     [not run] xfs_io fpunch support is missing
>> generic/023 1s ... 0s
>> generic/024 1s ... 0s
>> generic/025 0s ... 0s
>> generic/026 0s ... 0s
>> generic/027 57s ... 57s
>> generic/028 5s ... 5s
>> generic/053 1s ... 2s
>> generic/062 1s ... 2s
>> generic/068 60s ... 61s
>> generic/069 4s ... 3s
>> generic/070 13s ... 14s
>> generic/074 164s ... 162s
>> generic/075 87s ... 86s
>> generic/076 1s ... 1s
>> generic/077     [not run] fsgqa user not defined.
>
> ANd if you don't have this user defined, then several quota tests
> don't get run.
>
>> generic/079 1s ... 1s
>> generic/083 36s ... 39s
>> generic/088 1s ... 0s
>> generic/089 4s ... 4s
>> generic/091 62s ... 62s
>> generic/093     [not run] not suitable for this OS: Linux
>> generic/097     [not run] not suitable for this OS: Linux
>> generic/099     [not run] not suitable for this OS: Linux
>> generic/100 12s ... 12s
>> generic/105 0s ... 0s
>> generic/112     [not run] fsx not built with AIO for this platform
>> generic/113     [not run] aio-stress not built for this platform
>
> Ouch. There's another whole class of functionality you aren't
> testing.
>
>> generic/299     [not run]  utility required, skipped this test
>> generic/300     [not run] xfs_io fpunch support is missing
>> generic/306     - output mismatch (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//generic/306.out.bad)
>>     --- tests/generic/306.out    2014-07-16 10:19:26.196995657 +0800
>>     +++ /root/work/quota/ext4_inode_field/xfstests.git/results//generic/306.out.bad
>>    2015-04-27 22:40:13.365445316 +0800
>>     @@ -2,11 +2,9 @@
>>      == try to create new file
>>      touch: cannot touch 'SCRATCH_MNT/this_should_fail': Read-only file system
>>      == pwrite to null device
>>     -wrote 512/512 bytes at offset 0
>>     -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>>     +xfs_io: specified file ["/mnt/scratch/devnull"] is not on an XFS filesystem
>>      == pread from zero device
>>     ...
>>     (Run 'diff -u tests/generic/306.out
>> /root/work/quota/ext4_inode_field/xfstests.git/results//generic/306.out.bad'
>>  to see the entire diff)
>
> That's caused by having a very old xfs_io.
>
>> xfs/229 134s ... [failed, exit status 23] - output mismatch (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/229.out.bad)
>>     --- tests/xfs/229.out    2014-07-16 10:19:26.215995657 +0800
>>     +++ /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/229.out.bad
>>    2015-04-27 23:25:48.709093428 +0800
>>     @@ -1,4 +1,31 @@
>>      QA output created by 229
>>      generating 10 files
>>     +Write did not return correct amount
>>     +Write did not return correct amount
>>     +Write did not return correct amount
>>     +Write did not return correct amount
>>      comparing files
>
> Can't say that I've seen that one fail for a long time. I can't say
> anything useful about it, however, given how old your xfsprogs
> installation is.
>
>>     ...
>>     (Run 'diff -u tests/xfs/229.out
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/229.out.bad'
>>  to see the entire diff)
>> xfs/238 1s ... 1s
>> xfs/242     [not run] zero command not supported
>> xfs/244 2s ... 2s
>> xfs/250     [failed, exit status 1] - output mismatch (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/250.out.bad)
>>     --- tests/xfs/250.out    2014-07-16 10:19:26.215995657 +0800
>>     +++ /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/250.out.bad
>>    2015-04-27 23:26:15.137452337 +0800
>>     @@ -11,4 +11,4 @@
>>      *** preallocate large file
>>      *** unmount loop filesystem
>>      *** check loop filesystem
>>     -*** done
>>     +_check_xfs_filesystem: filesystem on /mnt/test/250.fs is
>> inconsistent (r) (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/250.full)
>>     ...
>>     (Run 'diff -u tests/xfs/250.out
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/250.out.bad'
>>  to see the entire diff)
>
> Your xfstests is not up to date. This is fixed by commit ee6ad7f
> ("xfs/049: umount -d fails when kernel wins teardown race").
>
>> xfs/301     - output mismatch (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/301.out.bad)
>>     --- tests/xfs/301.out    2014-07-16 10:19:26.217995657 +0800
>>     +++ /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/301.out.bad
>>    2015-04-27 23:33:33.629182381 +0800
>>     @@ -29,18 +29,21 @@
>>      Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
>>      some_text4
>>      EAs on restore
>>     +getfattr: /mnt/scratch/restoredir/dumpdir: No such file or directory
>>     +getfattr: /mnt/scratch/restoredir/dumpdir: No such file or directory
>>      User names
>>     -Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
>>     ...
>>     (Run 'diff -u tests/xfs/301.out
>
> $ ./lsqa.pl tests/xfs/301
> FS QA Test No. 301
>
> Verify multi-stream xfsdump/restore preserves extended attributes
>
> $
>
> Your xfsdump package is out of date and needs upgrading.
>
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/301.out.bad'
>>  to see the entire diff)
>> xfs/302     [failed, exit status 1] - output mismatch (see
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/302.out.bad)
>>     --- tests/xfs/302.out    2014-07-16 10:19:26.217995657 +0800
>>     +++ /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/302.out.bad
>>    2015-04-27 23:33:46.102767709 +0800
>>     @@ -1,2 +1,4 @@
>>      QA output created by 302
>>      Silence is golden.
>>     +dump failed
>>     +(see /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/302.full
>> for details)
>>     ...
>>     (Run 'diff -u tests/xfs/302.out
>> /root/work/quota/ext4_inode_field/xfstests.git/results//xfs/302.out.bad'
>>  to see the entire diff)
>
> Same again.
>
> You need to upgrade everything to current xfstests/xfsprogs/xfsdump
> and retest *everything*. That means rerunning all your ext4 testing,
> too, because you're not exercising all the cases where the
> interesting accounting bugs lie (i.e. in fallocate operations).
>
> I'd also suggest that you run the tests using MOUNT_OPTIONS="-o
> pquota" after setting up default configurations for TEST_MNT and
> SCRATCH_MNT so that you actually give the project quota code a
> significant amount of work to do, and do the same for ext4,
> otherwise you're not really testing it at all when you run xfstests
> on ext4....
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@...morbit.com
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists