2.6.37 kernel BUG at fs/btrfs/inode.c:6752!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We build packages in a kvm-qemu chroot environment. And the root fs is btrfs. It hang during installing packages. And we found error message in dmesg:

[   84.320466] btrfs: use compression
[  288.711396] ------------[ cut here ]------------
[  288.711569] kernel BUG at fs/btrfs/inode.c:6752!
[  288.711730] invalid opcode: 0000 [#1] PREEMPT SMP 
[  288.712014] last sysfs file: /sys/devices/virtual/bdi/btrfs-1/uevent
[  288.712014] Modules linked in: dm_snapshot dm_mod
[  288.712014] 
[  288.712014] Pid: 869, comm: ldconfig Not tainted 2.6.37-14.3 #1 /Bochs
[  288.712014] EIP: 0060:[<c1191f0a>] EFLAGS: 00010286 CPU: 0
[  288.712014] EIP is at btrfs_rename+0x2d6/0x41c
[  288.712014] EAX: ffffffe4 EBX: 4d584e22 ECX: 00000007 EDX: c3a88838
[  288.712014] ESI: 2a60ff2b EDI: db43fcdc EBP: c3acfe5c ESP: c3acfe18
[  288.712014]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  288.712014] Process ldconfig (pid: 869, ti=c3ace000 task=c3a883b0 task.ti=c3ace000)
[  288.712014] Stack:
[  288.712014]  00000246 00acfe2c f4114900 01bfb428 f3f02988 f4114b1c db7a7358 f4114b1c
[  288.712014]  f3f02988 00000000 debfb38c f247a4a0 00000336 00000000 c155ee98 f4fcd9d0
[  288.712014]  debfb38c c3acfe80 c10fe222 f4fcd9d0 f4114b1c db7a7358 f4114b1c ffffffff
[  288.712014] Call Trace:
[  288.712014]  [<c10fe222>] ? vfs_rename_other+0x62/0xc7
[  288.712014]  [<c10fec68>] ? vfs_rename+0xda/0x1a4
[  288.712014]  [<c1100d20>] ? sys_renameat+0x16d/0x1ce
[  288.712014]  [<c104a93b>] ? do_page_fault+0x330/0x35d
[  288.712014]  [<c104a60b>] ? do_page_fault+0x0/0x35d
[  288.712014]  [<c1100d93>] ? sys_rename+0x12/0x17
[  288.712014]  [<c154065d>] ? syscall_call+0x7/0xb
[  288.712014] Code: c4 10 eb 23 8b 55 d4 8b 4d d0 8b 42 2c ff 40 30 8b 45 e8 ff 72 40 ff 72 44 ff 72 2c 8b 55 dc e8 ce dc ff ff 83 c4 0c 85 c0 74 02 <0f> 0b 80 7d cb 00 0f 84 85 00 00 00 e8 ea 1e ef ff 8b 4d e4 83 
[  288.712014] EIP: [<c1191f0a>] btrfs_rename+0x2d6/0x41c SS:ESP 0068:c3acfe18
[  288.730501] ---[ end trace f18bb6381110715f ]---

We also got the output of sysrq+w as below:

[15976.024048] SysRq : Show Blocked State
[15976.025023]   task                PC stack   pid father
[15976.025023] mic-image-cre D 00000043     0   273    271 0x00000000
[15976.025023]  f452bee0 00000046 4e94762e 00000043 c18920c0 00207c5b 00000000 c18920c0
[15976.025023]  f45988b8 4e73f9d3 00000043 f4598630 00000001 f3f02c20 c107c3a6 f3f02c30
[15976.025023]  00000001 f3f02bd8 c153f063 f3f02c10 f452bec4 00000046 00000046 f3f02bd8
[15976.025023] Call Trace:
[15976.025023]  [<c107c3a6>] ? prepare_to_wait+0x4f/0x56
[15976.025023]  [<c153f063>] ? mutex_unlock+0x8/0xa
[15976.025023]  [<c108e368>] ? trace_hardirqs_on+0xb/0xd
[15976.025023]  [<c11b3955>] wait_for_writer.clone.17+0x89/0xaf
[15976.025023]  [<c107c1a7>] ? autoremove_wake_function+0x0/0x2f
[15976.025023]  [<c11b3aa9>] btrfs_sync_log+0xc2/0x43b
[15976.025023]  [<c108e368>] ? trace_hardirqs_on+0xb/0xd
[15976.025023]  [<c1193c22>] btrfs_sync_file+0x116/0x156
[15976.025023]  [<c1113e2c>] vfs_fsync_range+0x48/0x65
[15976.025023]  [<c1113ec5>] vfs_fsync+0x14/0x16
[15976.025023]  [<c1113eeb>] do_fsync+0x24/0x34
[15976.025023]  [<c1114167>] sys_fdatasync+0x10/0x12
[15976.025023]  [<c154065d>] syscall_call+0x7/0xb
[15976.025023] btrfs-transac D 0000004a     0   337      2 0x00000000
[15976.025023]  f3f71ecc 00000046 913eb54f 0000004a c18920c0 000004c2 00000000 c18920c0
[15976.025023]  f47f1038 913eb08d 0000004a f47f0db0 00000000 f4561e70 c153dddf 00000000
[15976.025023]  00000000 c119fa68 f3f71ec4 00000002 00000000 f4561ffc 00000002 00000000
[15976.025023] Call Trace:
[15976.025023]  [<c153dddf>] ? schedule+0x6c0/0x774
[15976.025023]  [<c119fa68>] ? btrfs_run_ordered_operations+0x2a/0x195
[15976.025023]  [<c119fa78>] ? btrfs_run_ordered_operations+0x3a/0x195
[15976.025023]  [<c107c36f>] ? prepare_to_wait+0x18/0x56
[15976.025023]  [<c153e11f>] schedule_timeout+0x18/0x2c8
[15976.025023]  [<c107c3a6>] ? prepare_to_wait+0x4f/0x56
[15976.025023]  [<c108e368>] ? trace_hardirqs_on+0xb/0xd
[15976.025023]  [<c107c3a6>] ? prepare_to_wait+0x4f/0x56
[15976.025023]  [<c1188089>] btrfs_commit_transaction+0x252/0x5c4
[15976.025023]  [<c107c1a7>] ? autoremove_wake_function+0x0/0x2f
[15976.025023]  [<c11833f3>] transaction_kthread+0x141/0x1dd
[15976.025023]  [<c1051a2d>] ? complete+0x34/0x3e
[15976.025023]  [<c11832b2>] ? transaction_kthread+0x0/0x1dd
[15976.025023]  [<c107bd84>] kthread+0x63/0x68
[15976.025023]  [<c107bd21>] ? kthread+0x0/0x68
[15976.025023]  [<c102eaba>] kernel_thread_helper+0x6/0x10
[15976.025023] Sched Debug Version: v0.09, 2.6.37-14.3 #1
[15976.025023] now at 15976066.938938 msecs
[15976.025023]   .jiffies                                 : 15676024
[15976.025023]   .sysctl_sched_latency                    : 6.000000
[15976.025023]   .sysctl_sched_min_granularity            : 0.750000
[15976.025023]   .sysctl_sched_wakeup_granularity         : 1.000000
[15976.025023]   .sysctl_sched_child_runs_first           : 0
[15976.025023]   .sysctl_sched_features                   : 31855
[15976.025023]   .sysctl_sched_tunable_scaling            : 1 (logaritmic)
[15976.025023] 
[15976.025023] cpu#0, 3323.907 MHz
[15976.025023]   .nr_running                    : 2
[15976.025023]   .load                          : 2048
[15976.025023]   .nr_switches                   : 1096534
[15976.025023]   .nr_load_updates               : 189903
[15976.025023]   .nr_uninterruptible            : 2
[15976.025023]   .next_balance                  : 15.677021
[15976.025023]   .curr->pid                     : 880
[15976.025023]   .clock                         : 15976024.024329
[15976.025023]   .cpu_load[0]                   : 2048
[15976.025023]   .cpu_load[1]                   : 1280
[15976.025023]   .cpu_load[2]                   : 704
[15976.025023]   .cpu_load[3]                   : 368
[15976.025023]   .cpu_load[4]                   : 188
[15976.025023]   .yld_count                     : 0
[15976.025023]   .sched_switch                  : 0
[15976.025023]   .sched_count                   : 1178729
[15976.025023]   .sched_goidle                  : 115865
[15976.025023]   .avg_idle                      : 929176
[15976.025023]   .ttwu_count                    : 604286
[15976.025023]   .ttwu_local                    : 604286
[15976.025023]   .bkl_count                     : 0
[15976.025023] 
[15976.025023] cfs_rq[0]:/
[15976.025023]   .exec_clock                    : 147695.057962
[15976.025023]   .MIN_vruntime                  : 115505.817780
[15976.025023]   .min_vruntime                  : 115505.817780
[15976.025023]   .max_vruntime                  : 115505.817780
[15976.025023]   .spread                        : 0.000000
[15976.025023]   .spread0                       : 0.000000
[15976.025023]   .nr_running                    : 2
[15976.025023]   .load                          : 2048
[15976.025023]   .nr_spread_over                : 144
[15976.025023]   .shares                        : 0
[15976.025023] 
[15976.025023] rt_rq[0]:/
[15976.025023]   .rt_nr_running                 : 0
[15976.025023]   .rt_throttled                  : 0
[15976.025023]   .rt_time                       : 0.000000
[15976.025023]   .rt_runtime                    : 950.000000
[15976.025023] 
[15976.025023] runnable tasks:
[15976.025023]             task   PID         tree-key  switches  prio     exec-runtime         sum-exec        sum-sleep
[15976.025023] ----------------------------------------------------------------------------------------------------------
[15976.025023] R           bash   880    115502.939384       239   120    115502.939384        39.907413    251822.808664 /
[15976.025023]

The BUG_ON is here:
        if (unlikely(old_inode->i_ino == BTRFS_FIRST_FREE_OBJECTID)) {
                root_objectid = BTRFS_I(old_inode)->root->root_key.objectid;
                ret = btrfs_unlink_subvol(trans, root, old_dir, root_objectid,
                                        old_dentry->d_name.name,
                                        old_dentry->d_name.len);
        } else {
                btrfs_inc_nlink(old_dentry->d_inode);
                ret = btrfs_unlink_inode(trans, root, old_dir,
                                         old_dentry->d_inode,
                                         old_dentry->d_name.name,
                                         old_dentry->d_name.len);
        }
        BUG_ON(ret);

I suspect the later hang is related to the previous bug_on. Since it bug_on in btrfs_rename and do not call btrfs_end_log_trans to decrease root->log_writers. And later call to btrfs_sync_log will wait for ever for root->log_writers.

And I am wondering if we really need to bug_on for every invalid return value of btrfs_unlink_inode. Should we loosen it to something else?
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux