Skip to contentSkip to conversation

btrfs filesystem freeze

DISCUSSION [email protected] 1 participant 1 message Dec 23, 2008 Btrfs file system

lore
Share & tools
lore
#0 lore raw

thanks,=20

i tried it and ran my tests for some hours now - looks really good. no = crashes, no freezes.=20

anyway, some "minor" glitches remain.

i looked at some "ls -la /btrfs" output via "watch ls -la..", and by ch= ance i saw this one for a moment.

dr-xr-xr-x  1 root root     126 Dec 22 22:19 snap96
dr-xr-xr-x  1 root root     126 Dec 22 22:19 snap97
dr-xr-xr-x  1 root root     126 Dec 22 22:19 snap98
dr-xr-xr-x  1 root root     110 Dec 22 22:19 snap99
-rw-r--r--  1 root root 1048576 Dec 22 22:49 test.dat
-?????????  ? ?    ?          ?            ? test.tmp
-rw-r--r--  1 root root 7020046 Dec 22 22:48 testfsx
-rw-r--r--  1 root root       0 Dec 22 22:23 testfsx.fsxgood
-rw-r--r--  1 root root       0 Dec 22 22:23 testfsx.fsxlog

that file test.tmp looks weird.=20
it`s constantly created by copying test.dat forth and back (i.e cp test= =2Edat test.tmp, md5sum test.tmp;rm test.dat;mv test.tmp test.dat in a=
loop, to check file consistency)

should i worry here ?

furthermore, after several hours, i got this one (also once):

Tue Dec 23 00:40:33 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:42:59 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:43:17 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:44:28 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:49:43 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:50:37 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:50:57 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:56:44 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp
Tue Dec 23 00:59:33 CET 2008 59987747e2568fa81bb38603706eff07  test.tmp

Tue Dec 23 01:00:03 CET 2008 md5sum: test.tmp: Input/output error
cp: reading `test.dat': Input/output error
Tue Dec 23 01:01:44 CET 2008 ca6bbc6a8aa5ec080a2a10d727ecc563 test.tmp Tue Dec 23 01:08:05 CET 2008 ca6bbc6a8aa5ec080a2a10d727ecc563 test.tmp

how can this happen?=20
"cp test.dat test.tmp" is _always_ something which happens after "mv te= st.tmp test.dat", and there`s a "sync" in between

looks like a race condition !?
the mv command returned but btfs did not complete the file move and the=
next command does not yet see the moved file !?

i don`t have timing information for dmesg and cannot tell, if there is = any relation with those glitches, but here is some messages in dmesg :

device fsid 7c4ee06dc0149bc8-44e376a69f9aa08b devid 1 transid 9 /dev/sd= b1
btrfs: use compression
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs csum failed ino 39502 off 524288 csum 1261748817 private 18134416= 08
btrfs: unlinked 1 orphans
btrfs: unlinked 1 orphans

so, apparently also some checksum was wrong !?

ah, and some more (please forgive - this is all for making btfs better!= )

i ran some posix regression test suite (http://www.ntfs-3g.org/pjd-fste=
st.html) , which also reported some problems.=20

i`m not sure if this are false positives because the testsuite does not=
officially support btrfs.=20

i`m posting it here for review.

linux-uqw0:/btrfs/pjd-fstest-20080917-RC # prove -r . tests/chflags/00.....ok tests/chflags/01.....ok tests/chflags/02.....ok tests/chflags/03.....ok tests/chflags/04.....ok tests/chflags/05.....ok tests/chflags/06.....ok tests/chflags/07.....ok tests/chflags/08.....ok tests/chflags/09.....ok tests/chflags/10.....ok tests/chflags/11.....ok tests/chflags/12.....ok tests/chflags/13.....ok tests/chmod/00.......ok tests/chmod/01.......ok tests/chmod/02.......ok tests/chmod/03.......ok tests/chmod/04.......ok tests/chmod/05.......ok tests/chmod/06.......ok tests/chmod/07.......ok tests/chmod/08.......ok tests/chmod/09.......ok tests/chmod/10.......ok tests/chmod/11.......ok tests/chown/00.......ok tests/chown/01.......ok tests/chown/02.......ok tests/chown/03.......ok tests/chown/04.......ok tests/chown/05.......ok tests/chown/06.......ok tests/chown/07.......ok tests/chown/08.......ok tests/chown/09.......ok tests/chown/10.......ok tests/link/00........FAILED tests 56, 63

        Failed 2/82 tests, 97.56% okay

tests/link/01........ok
tests/link/02........ok
tests/link/03........ok
tests/link/04........ok
tests/link/05........ok
tests/link/06........ok
tests/link/07........ok
tests/link/08........ok
tests/link/09........ok
tests/link/10........ok
tests/link/11........ok
tests/link/12........ok
tests/link/13........ok
tests/link/14........ok
tests/link/15........ok
tests/link/16........ok
tests/link/17........ok
tests/mkdir/00.......ok
tests/mkdir/01.......ok
tests/mkdir/02.......ok
tests/mkdir/03.......ok
tests/mkdir/04.......ok
tests/mkdir/05.......ok
tests/mkdir/06.......ok
tests/mkdir/07.......ok
tests/mkdir/08.......ok
tests/mkdir/09.......ok
tests/mkdir/10.......ok
tests/mkdir/11.......ok
tests/mkdir/12.......ok
tests/mkfifo/00......ok
tests/mkfifo/01......ok
tests/mkfifo/02......ok
tests/mkfifo/03......ok
tests/mkfifo/04......ok
tests/mkfifo/05......ok
tests/mkfifo/06......ok
tests/mkfifo/07......ok
tests/mkfifo/08......ok
tests/mkfifo/09......ok
tests/mkfifo/10......ok
tests/mkfifo/11......ok
tests/mkfifo/12......ok
tests/open/00........ok
tests/open/01........ok
tests/open/02........ok
tests/open/03........ok
tests/open/04........ok
tests/open/05........ok
tests/open/06........ok
tests/open/07........ok
tests/open/08........ok
tests/open/09........ok
tests/open/10........ok
tests/open/11........ok
tests/open/12........ok
tests/open/13........ok
tests/open/14........ok
tests/open/15........ok
tests/open/16........ok
tests/open/17........ok
tests/open/18........ok
tests/open/19........ok
tests/open/20........ok
tests/open/21........ok
tests/open/22........ok
tests/open/23........ok
tests/rename/00......ok
tests/rename/01......ok
tests/rename/02......ok
tests/rename/03......ok
tests/rename/04......ok
tests/rename/05......ok
tests/rename/06......ok
tests/rename/07......ok
tests/rename/08......ok
tests/rename/09......ok
tests/rename/10......ok
tests/rename/11......ok
tests/rename/12......ok
tests/rename/13......ok
tests/rename/14......ok
tests/rename/15......ok
tests/rename/16......ok
tests/rename/17......ok
tests/rename/18......ok
tests/rename/19......ok
tests/rename/20......ok
tests/rmdir/00.......ok
tests/rmdir/01.......ok
tests/rmdir/02.......ok
tests/rmdir/03.......ok
tests/rmdir/04.......ok
tests/rmdir/05.......ok
tests/rmdir/06.......ok
tests/rmdir/07.......ok
tests/rmdir/08.......ok
tests/rmdir/09.......ok
tests/rmdir/10.......ok
tests/rmdir/11.......ok
tests/rmdir/12.......ok
tests/rmdir/13.......ok
tests/rmdir/14.......ok
tests/rmdir/15.......ok
tests/symlink/00.....ok
tests/symlink/01.....ok
tests/symlink/02.....ok
tests/symlink/03.....ok
tests/symlink/04.....ok
tests/symlink/05.....ok
tests/symlink/06.....ok
tests/symlink/07.....ok
tests/symlink/08.....ok
tests/symlink/09.....ok
tests/symlink/10.....ok
tests/symlink/11.....ok
tests/symlink/12.....ok
tests/truncate/00....FAILED test 15

        Failed 1/21 tests, 95.24% okay

tests/truncate/01....ok
tests/truncate/02....ok
tests/truncate/03....ok
tests/truncate/04....ok
tests/truncate/05....ok
tests/truncate/06....ok
tests/truncate/07....ok
tests/truncate/08....ok
tests/truncate/09....ok
tests/truncate/10....ok
tests/truncate/11....ok
tests/truncate/12....ok
tests/truncate/13....ok
tests/truncate/14....ok
tests/unlink/00......ok
tests/unlink/01......ok
tests/unlink/02......ok
tests/unlink/03......ok
tests/unlink/04......ok
tests/unlink/05......ok
tests/unlink/06......ok
tests/unlink/07......ok
tests/unlink/08......ok
tests/unlink/09......ok
tests/unlink/10......ok
tests/unlink/11......ok
tests/unlink/12......ok
tests/unlink/13......ok
tests/xacl/00........FAILED test 2

        Failed 1/42 tests, 97.62% okay
tests/xacl/01........FAILED tests 2, 22
        Failed 2/32 tests, 93.75% okay
tests/xacl/02........FAILED tests 2, 41
        Failed 2/80 tests, 97.50% okay
tests/xacl/03........FAILED tests 2, 31, 35, 38, 43, 47
        Failed 6/57 tests, 89.47% okay
tests/xacl/04........FAILED tests 2, 52
        Failed 2/53 tests, 96.23% okay
tests/xacl/05........ok
tests/xacl/06........FAILED tests 16, 26-27, 30, 33-34, 36-38, 40-42
        Failed 12/42 tests, 71.43% okay
=46ailed Test         Stat Wstat Total Fail  List of Failed
-----------------------------------------------------------------------=
--------
tests/link/00.t                   82    2  56 63
tests/truncate/00.t               21    1  15
tests/xacl/00.t                   42    1  2
tests/xacl/01.t                   32    2  2 22
tests/xacl/02.t                   80    2  2 41
tests/xacl/03.t                   57    6  2 31 35 38 43 47
tests/xacl/04.t                   53    2  2 52
tests/xacl/06.t                   42   12  16 26-27 30 33-34 36-38 40-4=

2
=46ailed 8/191 test scripts. 28/2284 subtests failed. =46iles=3D191, Tests=3D2284, 2762 wallclock secs (18.56 cusr + 179.63 c= sys =3D 198.19 CPU)
=46ailed 8/191 test programs. 28/2284 subtests failed.

besides all that, i=B4m really impressed by btrfs and i think it`s at r= eally good condition and quite stable.
i think i dare using it for a server to do some pre-production testing.= =2E..

Keep up the good work!

regards
roland

Quoted 6 lines
Quoted 5 lines · [email protected] wrote:

thank you.
=20
i tried your patch and did another test run.
=20
first, it looked better as i could do much more snapshots than befo=

re, but then it froze again.

Quoted 2 lines
Quoted 2 lines

=20
i don`t really have a clue if your patch enhanced anything, as my t=

est setup isn`t exactly reproducable for now and i did not check for e= xact "testing lab conditions".

Quoted 2 lines
Quoted 2 lines

=20
after /btrfs froze again, i tried to unmount by forcibly unloading =

btrfs module.=20

Quoted 2 lines
Quoted 2 lines

=20
after reloading the module and trying to mount again, it failed wit=

h the following kernel message:

Quoted 16 lines
Quoted 1 line

=20

I hope the new patch can solve the problem.
=20
Yan Zheng=20
=20
---
diff -urp 1/fs/btrfs/inode.c 2/fs/btrfs/inode.c

fs/btrfs/inode.c +0 -0
@@ -2891,7 +2891,7 @@ void btrfs_delete_inode(struct inode *in
 	btrfs_wait_ordered_range(inode, 0, (u64)-1);

=20

fs/btrfs/inode.c +1 -1
 	btrfs_i_size_write(inode, 0);
-	trans =3D btrfs_start_transaction(root, 1);
+	trans =3D btrfs_join_transaction(root, 1);

=20

fs/btrfs/inode.c

Quoted 2 lines
fs/btrfs/inode.c +0 -0
 	btrfs_set_trans_block_group(trans, inode);
 	ret =3D btrfs_truncate_inode_items(trans, root, inode, inode->i_siz=

e, 0);

Quoted 12 lines

diff -urp 1/fs/btrfs/transaction.c 2/fs/btrfs/transaction.c

fs/btrfs/transaction.c +0 -0
@@ -804,7 +804,7 @@ static noinline int finish_pending_snaps

=20

fs/btrfs/transaction.c +1 -1
 	parent_inode =3D pending->dentry->d_parent->d_inode;
 	parent_root =3D BTRFS_I(parent_inode)->root;
-	trans =3D btrfs_start_transaction(parent_root, 1);
+	trans =3D btrfs_join_transaction(parent_root, 1);

=20

fs/btrfs/transaction.c +0 -0
 	/*
 	 * insert the directory item
Quoted 1 line

=20

_______________________________________________________________________
T=E4glich 1.000.000 Euro gewinnen! Jetzt kostenlos WEB.DE MillionenKlic= k=20
spielen! https://millionenklick.web.de/[email protected]@home

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html