Bug 705039 - btrfs oops when running new xfstest
btrfs oops when running new xfstest
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE 12.1
Classification: openSUSE
Component: Kernel
Factory
x86-64 openSUSE 11.4
: P5 - None : Normal (vote)
: ---
Assigned To: E-mail List
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-07-11 23:55 UTC by Greg Freemyer
Modified: 2011-08-05 21:40 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
test script for xfstest - temporarily named 255 - subject to change (1.95 KB, text/plain)
2011-07-11 23:55 UTC, Greg Freemyer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Greg Freemyer 2011-07-11 23:55:28 UTC
Created attachment 439308 [details]
test script for xfstest - temporarily named 255 - subject to change

User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

I'm trying to develop a new btrfs test for xfstests.

I get an oops when I try to run it for 2.6.37, 2.6.38, and 2.3.39

I'm running 11.4 (Tumbleweed) userspace.

For 2.6.39 it is the Tumbleweed kernel I tested as well.

The oops is:

------------[ cut here ]------------
kernel BUG at /usr/src/packages/BUILD/kernel-default-2.6.39.2/linux-2.6.39/fs/btrfs/inode.c:1651!
invalid opcode: 0000 [#1] SMP 
last sysfs file: /sys/devices/system/cpu/cpu1/cache/index1/shared_cpu_map
CPU 0 
Modules linked in: btrfs zlib_deflate ip6table_filter ip6_tables iptable_filter ip_tables x_tables snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device binfmt_misc md4 md5 nls_utf8 cifs microcode mperf dm_mod snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_timer iTCO_wdt snd iTCO_vendor_support soundcore snd_page_alloc dcdbas i2c_i801 pcspkr serio_raw sg sr_mod cdrom e1000e usbhid uhci_hcd i915 drm_kms_helper ehci_hcd drm i2c_algo_bit video button usbcore edd fan ata_generic pata_artop thermal processor thermal_sys

Pid: 3030, comm: btrfs-endio-wri Tainted: G        W   2.6.39.2-36-default #1 Dell Inc.                 Dell DM061                   /0WG864
RIP: 0010:[<ffffffffa03d08d5>]  [<ffffffffa03d08d5>] insert_reserved_file_extent.clone.0+0x225/0x230 [btrfs]
RSP: 0018:ffff880070a73cc0  EFLAGS: 00010282
RAX: 00000000ffffffef RBX: ffff880070faef40 RCX: ffff880070a73fd8
RDX: 0000000000000008 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffff88007686cda8 R08: 0000000000000001 R09: 0000000000000001
R10: ffff8800768c24e0 R11: 0000000000000000 R12: 0000000000000000
R13: ffff880072c98800 R14: ffff8800768c24e0 R15: 0000000000100000
FS:  0000000000000000(0000) GS:ffff88007f400000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00007f0c340c1000 CR3: 000000007af67000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process btrfs-endio-wri (pid: 3030, threadinfo ffff880070a72000, task ffff88007910a7c0)
Stack:
 ffff88007686cc40 0000000000000000 0000000000000050 0000000000d00000
 0000000000100000 00ff880072c98800 000000000000010a 000000000000006c
 ffff880072c98800 ffffffffa03cd8c3 ffff880070a73db0 0000003500000000
Call Trace:
 [<ffffffffa03d3ec2>] btrfs_finish_ordered_io+0x322/0x360 [btrfs]
 [<ffffffffa03ed55e>] end_bio_extent_writepage+0x12e/0x180 [btrfs]
 [<ffffffffa03faa7c>] worker_loop+0xbc/0x370 [btrfs]
 [<ffffffff810774b6>] kthread+0x96/0xa0
 [<ffffffff8151f584>] kernel_thread_helper+0x4/0x10
Code: 48 89 44 24 39 e8 dc e3 fe ff 85 c0 75 1b 48 89 df e8 70 b9 fd ff 48 83 c4 68 31 c0 5b 5d 41 5c 41 5d 41 5e 41 5f c3 0f 0b 0f 0b <0f> 0b 0f 0b 0f 1f 80 00 00 00 00 48 83 ec 58 48 89 5c 24 28 48 
RIP  [<ffffffffa03d08d5>] insert_reserved_file_extent.clone.0+0x225/0x230 [btrfs]
 RSP <ffff880070a73cc0>
---[ end trace 7f3c4f1d3b071fa8 ]---


Kernel failure message 2:
------------[ cut here ]------------
WARNING: at /usr/src/packages/BUILD/kernel-default-2.6.39.2/linux-2.6.39/fs/btrfs/file.c:368 btrfs_drop_extents+0x311/0x910 [btrfs]()
Hardware name: Dell DM061                   
Modules linked in: btrfs zlib_deflate ip6table_filter ip6_tables iptable_filter ip_tables x_tables snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device binfmt_misc md4 md5 nls_utf8 cifs microcode mperf dm_mod snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_timer iTCO_wdt snd iTCO_vendor_support soundcore snd_page_alloc dcdbas i2c_i801 pcspkr serio_raw sg sr_mod cdrom e1000e usbhid uhci_hcd i915 drm_kms_helper ehci_hcd drm i2c_algo_bit video button usbcore edd fan ata_generic pata_artop thermal processor thermal_sys
Pid: 3030, comm: btrfs-endio-wri Tainted: G        W   2.6.39.2-36-default #1
Call Trace:
 [<ffffffff81004492>] dump_trace+0x72/0x300
 [<ffffffff815139a5>] dump_stack+0x69/0x6f
 [<ffffffff8105671b>] warn_slowpath_common+0x7b/0xc0
 [<ffffffffa03dc421>] btrfs_drop_extents+0x311/0x910 [btrfs]
 [<ffffffffa03d0719>] insert_reserved_file_extent.clone.0+0x69/0x230 [btrfs]
 [<ffffffffa03d3ec2>] btrfs_finish_ordered_io+0x322/0x360 [btrfs]
 [<ffffffffa03ed55e>] end_bio_extent_writepage+0x12e/0x180 [btrfs]
 [<ffffffffa03faa7c>] worker_loop+0xbc/0x370 [btrfs]
 [<ffffffff810774b6>] kthread+0x96/0xa0
 [<ffffffff8151f584>] kernel_thread_helper+0x4/0x10
---[ end trace 7f3c4f1d3b071fa7 ]---


Kernel failure message 3:
------------[ cut here ]------------
WARNING: at /usr/src/packages/BUILD/kernel-default-2.6.39.2/linux-2.6.39/fs/btrfs/file.c:368 btrfs_drop_extents+0x311/0x910 [btrfs]()
Hardware name: Dell DM061                   
Modules linked in: btrfs zlib_deflate ip6table_filter ip6_tables iptable_filter ip_tables x_tables snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device binfmt_misc md4 md5 nls_utf8 cifs microcode mperf dm_mod snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_timer iTCO_wdt snd iTCO_vendor_support soundcore snd_page_alloc dcdbas i2c_i801 pcspkr serio_raw sg sr_mod cdrom e1000e usbhid uhci_hcd i915 drm_kms_helper ehci_hcd drm i2c_algo_bit video button usbcore edd fan ata_generic pata_artop thermal processor thermal_sys
Pid: 3030, comm: btrfs-endio-wri Not tainted 2.6.39.2-36-default #1
Call Trace:
 [<ffffffff81004492>] dump_trace+0x72/0x300
 [<ffffffff815139a5>] dump_stack+0x69/0x6f
 [<ffffffff8105671b>] warn_slowpath_common+0x7b/0xc0
 [<ffffffffa03dc421>] btrfs_drop_extents+0x311/0x910 [btrfs]
 [<ffffffffa03d0719>] insert_reserved_file_extent.clone.0+0x69/0x230 [btrfs]
 [<ffffffffa03d5e7e>] btrfs_endio_direct_write+0x1ee/0x310 [btrfs]
 [<ffffffffa03faa7c>] worker_loop+0xbc/0x370 [btrfs]
 [<ffffffff810774b6>] kthread+0x96/0xa0
 [<ffffffff8151f584>] kernel_thread_helper+0x4/0x10
---[ end trace 7f3c4f1d3b071fa6 ]---


Reproducible: Always

Steps to Reproduce:
1. Install xfstests per http://en.opensuse.org/SDB:XFStests
2. Reboot into a nice clean environment
3. Login to a text console
4. Set the environment variables as described in the wiki
5. run "./check 255" without first mounting the test partitions.  (test 255 is attached)
Actual Results:  
It seems to vary by which kernel I test exactly what happens, but I always get an oops.

With the 2.6.39.2-36-default from Tumbleweed, I was able to interact with the system for a short while, but after cntrl-alt-F7 the system locked up and I had to hard boot.

Expected Results:  
Test 255 is not yet a trusted test, so I don't know exactly what should have happened, but not a oops.

There are at least 4 ways to run test 255.  All seem problematic, but I haven't tested much since a reboot is required between tests.

1) With test partitions not mounted "./check 255"  
2) With test partitions not mounted "./255"  

3) With test partitions mounted "./check 255"  
4) With test partitions mounted "./255"

Again, test 255 is NOT finished, but it should not be causing oops messages.

I have NOT tested the 3.0 kernel.

This same test works to some extent on another machine.  (Possibly 32-bit, I haven't chased it down.)

I have no idea what it is in test 255 that causes the oops.
Comment 1 Greg Freemyer 2011-08-05 00:31:34 UTC
I just reproduced this with a 2.6.38 kernel.  Previously I was testing a 2.6.39 kernel.  I have NOT tried this with factory, nor with a 3.0 kernel.

This time I was just confirming the oops would still trigger with a older version of the xfstest we are working on.  The current version no longer triggers a oops.

====
I was working the xfstests git tree cloned via:

git clone https://github.com/adityadani/xfstests

# Then, get an older commit that apparently has a userspace bug that triggers a kernel oops.

git checkout 1b712a4512d63502fab6

# Then prep for the test

export TEST_DEV=/dev/sda3
export TEST_DIR=/xfstests_mnt
export SCRATCH_DEV=/dev/sda1
export SCRATCH_MNT=/xfstests_mnt_scratch
export FSTYP=btrfs

umount $TEST_DIR
umount $SCRATCH_MNT

mkfs.btrfs $TEST_DEV
mkfs.btrfs $SCRATCH_DEV

mount $TEST_DEV $TEST_DIR
mount $SCRATCH_DEV $SCRATCH_MNT

# Then run the test

./check 255

I didn't keep the oops, but it seems reproducible enough.

The oops was also put into the kde-oops catcher.
Comment 2 Greg Freemyer 2011-08-05 21:37:53 UTC
I finally tried to reproduce this with the 3.0.0-rc7-4-desktop kernel.

It did NOT oops, so I think this should be closed as resolved.

Greg
Comment 3 Greg Freemyer 2011-08-05 21:40:46 UTC
Closing as resolved by the 3.0 kernel.