Mailinglist Archive: opensuse-bugs (4250 mails)

< Previous Next >
[Bug 897774] btrfsck crashing while checking a corrupted file system
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Thu, 05 Jan 2017 08:46:26 +0000
  • Message-id: <bug-897774-21960-NrdGqAAU8U@http.bugzilla.opensuse.org/>
http://bugzilla.opensuse.org/show_bug.cgi?id=897774
http://bugzilla.opensuse.org/show_bug.cgi?id=897774#c11

Libor Pechacek <lpechacek@xxxxxxxx> changed:

What |Removed |Added
----------------------------------------------------------------------------
Priority|P5 - None |P2 - High
Component|Kernel |Basesystem
Version|201409* |Current
Summary|[Kernel:HEAD] btrfs issue |btrfsck crashing while
|(kernel crash) changes root |checking a corrupted file
|filesystem to ro mount |system
Flags| |needinfo?(johannesobermayr@
| |gmx.de)

--- Comment #11 from Libor Pechacek <lpechacek@xxxxxxxx> ---
(In reply to Johannes Obermayr from comment #10)
Still there on openSUSE Tumbleweed with Kernel
kernel-default-4.10.rc2-1.1.g870a2f2.x86_64:

Thanks for the swift reply, Johannes!

[ 1776.648462] WARNING: CPU: 0 PID: 3813 at ../fs/btrfs/extent-tree.c:6935
__btrfs_free_extent.isra.58+0x7a8/0xe10 [btrfs]
[...]
[ 1776.649057] BTRFS error (device sda2): unable to find ref byte nr
67676614656 parent 0 root 4 owner 1 offset 0
[ 1776.649059] ------------[ cut here ]------------
[ 1776.649091] WARNING: CPU: 0 PID: 3813 at ../fs/btrfs/extent-tree.c:6941
__btrfs_free_extent.isra.58+0x809/0xe10 [btrfs]
[ 1776.649093] BTRFS: Transaction aborted (error -2)
[...]
[ 1776.649490] BTRFS: error (device sda2) in __btrfs_free_extent:6941:
errno=-2 No such entry

This is not a kernel crash. The format resembles oopses and panics but
warnings are not that severe. It comes from this piece of code:

fs/btrfs/extent-tree.c:
6935 } else if (WARN_ON(ret == -ENOENT)) {
6936 btrfs_print_leaf(info, path->nodes[0]);
6937 btrfs_err(info,
6938 "unable to find ref byte nr %llu parent %llu root
%llu owner %llu offset %llu",
6939 bytenr, parent, root_objectid, owner_objectid,
6940 owner_offset);
6941 btrfs_abort_transaction(trans, ret);
6942 goto out;
6943 } else {

The below are then btrfs_abort_transaction()'s from calling functions higher in
the chain.

[ 1776.649492] BTRFS info (device sda2): forced readonly
[ 1776.649497] BTRFS: error (device sda2) in btrfs_run_delayed_refs:2953:
errno=-2 No such entry
[ 1776.649500] BTRFS warning (device sda2): Skipping commit of aborted
transaction.
[ 1776.649503] BTRFS: error (device sda2) in cleanup_transaction:1872:
errno=-2 No such entry

With that I would say there is no kernel error and the only problem is the file
system corruption.

$ gdb btrfsck --batch -ex "set args /dev/sda2" -ex "run" -ex "bt full"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Checking filesystem on /dev/sda2
UUID: 9e12d35c-87ab-47e3-aecb-01f7c09e3c96
parent transid verify failed on 67666722816 wanted 385998 found 386004
Ignoring transid failure

Program received signal SIGSEGV, Segmentation fault.

This is the main culprit here. Would you mind sharing the file system metadata
dump so that we can look into replicating the issue?

(btrfs-image -c 9 <dev> <image file> will create a compressed metadata-only
image of the file system. Attach the resulting image to this bug report or
upload to ftp://support-ftp.suse.com/in/ in case it exceeds the size limit.)

--
You are receiving this mail because:
You are on the CC list for the bug.
< Previous Next >