From: "Theodore Y. Ts'o" <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: linux-ext4@vger.kernel.org
Subject: Re: [PATCH 0/19 v3] ext4: Fix transaction overflow due to revoke descriptors
Date: Sat, 19 Oct 2019 15:19:33 -0400 [thread overview]
Message-ID: <20191019191933.GA25841@mit.edu> (raw)
In-Reply-To: <20191003215523.7313-1-jack@suse.cz>
[-- Attachment #1: Type: text/plain, Size: 870 bytes --]
Hi Jan,
I've tried applying this patch set against 5.4-rc3, and I'm finding a
easily reproducible failure using:
kvm-xfstests -c ext3conv ext4/039
It is the BUG_ON in fs/jbd2/commit.c, around line 570:
J_ASSERT(commit_transaction->t_nr_buffers <=
atomic_read(&commit_transaction->t_outstanding_credits));
The failure (with the obvious debugging printk added) is:
ext4/039 [15:13:16][ 6.747101] run fstests ext4/039 at 2019-10
-19 15:13:16
[ 7.018766] Mounted ext4 file system at /vdc supports timestamps until 2038 (
0x7fffffff)
[ 8.227631] JBD2: t_nr_buffers 226, t_outstanding_credits=223
[ 8.229215] ------------[ cut here ]------------
[ 8.230249] kernel BUG at fs/jbd2/commit.c:573!
...
The full log is attached (although the stack trace isn't terribly
interesting, since this is being run out of kjournald2).
- Ted
[-- Attachment #2: log.201910191513 --]
[-- Type: text/plain, Size: 7057 bytes --]
^[c^[[?7l^[[2J^[[0mSeaBIOS (version 1.12.0-1)
Booting from ROM..^[c^[[?7l^[[2JKERNEL: kernel 5.4.0-rc3-xfstests-00022-g6db1a59f1c6a-dirty #1234 SMP Sat Oct 19 15:10:53 EDT 2019 x86_64
FSTESTVER: blktests 667d741 (Wed, 4 Sep 2019 10:49:18 -0700)
FSTESTVER: e2fsprogs v1.45.4-15-g4b4f7b35 (Wed, 9 Oct 2019 20:25:01 -0400)
FSTESTVER: fio fio-3.15 (Fri, 12 Jul 2019 10:40:36 -0600)
FSTESTVER: fsverity 2151209 (Fri, 28 Jun 2019 14:34:41 -0700)
FSTESTVER: ima-evm-utils 0267fa1 (Mon, 3 Dec 2018 06:11:35 -0500)
FSTESTVER: nvme-cli v1.9 (Thu, 15 Aug 2019 13:14:59 -0600)
FSTESTVER: quota 6e63107 (Thu, 15 Aug 2019 11:23:55 +0200)
FSTESTVER: util-linux v2.33.2 (Tue, 9 Apr 2019 14:58:07 +0200)
FSTESTVER: xfsprogs v5.3.0-rc1-8-g7aaa32db (Thu, 19 Sep 2019 13:21:52 -0400)
FSTESTVER: xfstests linux-v3.8-2563-g45bd2a28 (Mon, 14 Oct 2019 08:11:38 -0400)
FSTESTVER: xfstests-bld 5e2a748 (Mon, 14 Oct 2019 09:36:05 -0400)
FSTESTCFG: "ext3conv"
FSTESTSET: "ext4/039"
FSTESTEXC: ""
FSTESTOPT: "aex"
MNTOPTS: ""
CPUS: "2"
MEM: "1966.97"
total used free shared buff/cache available
Mem: 1966 96 1778 8 92 1830
Swap: 0 0 0
[ 5.146878] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5.148619] NFSD: Using legacy client tracking operations.
BEGIN TEST ext3conv (1 test): Ext4 4k block w/nodelalloc and no flex_bg Sat Oct 19 15:13:15 EDT 2019
DEVICE: /dev/vdd
EXT_MKFS_OPTIONS: -O ^flex_bg
EXT_MOUNT_OPTIONS: -o block_validity,nodelalloc
FSTYP -- ext4
PLATFORM -- Linux/x86_64 kvm-xfstests 5.4.0-rc3-xfstests-00022-g6db1a59f1c6a-dirty #1234 SMP Sat Oct 19 15:10:53 EDT 2019
MKFS_OPTIONS -- -q -O ^flex_bg /dev/vdc
MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity,nodelalloc /dev/vdc /vdc
ext4/039 [15:13:16][ 6.747101] run fstests ext4/039 at 2019-10-19 15:13:16
[ 7.018766] Mounted ext4 file system at /vdc supports timestamps until 2038 (0x7fffffff)
[ 8.227631] JBD2: t_nr_buffers 226, t_outstanding_credits=223
[ 8.229215] ------------[ cut here ]------------
[ 8.230249] kernel BUG at fs/jbd2/commit.c:573!
[ 8.231231] invalid opcode: 0000 [#1] SMP NOPTI
[ 8.232223] CPU: 1 PID: 1384 Comm: jbd2/vdc-8 Not tainted 5.4.0-rc3-xfstests-00022-g6db1a59f1c6a-dirty #1234
[ 8.234303] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
[ 8.236124] RIP: 0010:jbd2_journal_commit_transaction+0x1565/0x1f35
[ 8.237489] Code: f0 fe ff ff 48 c7 c2 b8 52 3a 8c be 4e 00 00 00 48 c7 c7 3f 06 3f 8c c6 05 a8 c5 5a 01 01 e8 8f 15 d4 ff e9 cc fe ff ff 0f 0b <0f> 0b 0f 0b 0f 0b e8 10 a0 d5 ff 85 c0 0f 85 15 fb ff ff 48 c7 c2
[ 8.241449] RSP: 0018:ffffaa64c22cbcf0 EFLAGS: 00010283
[ 8.242581] RAX: 00000000000000df RBX: ffff8ed0b8b7f028 RCX: 0000000000000000
[ 8.244138] RDX: 0000000000000000 RSI: 00000000000000e2 RDI: ffff8ed0bdbd6608
[ 8.245664] RBP: ffffaa64c22cbe80 R08: ffff8ed0bdbd6608 R09: 0000000000000000
[ 8.247029] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 8.248023] R13: ffff8ed0b52045a0 R14: ffff8ed0b5204540 R15: ffff8ed0b8b7f000
[ 8.249042] FS: 0000000000000000(0000) GS:ffff8ed0bda00000(0000) knlGS:0000000000000000
[ 8.250191] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 8.251007] CR2: 00005601514547c0 CR3: 00000000722c4006 CR4: 0000000000360ee0
[ 8.252007] Call Trace:
[ 8.252356] ? __lock_acquire+0x24a/0xf80
[ 8.252946] ? __lock_acquired+0x1eb/0x310
[ 8.253574] ? kjournald2+0xe3/0x3a0
[ 8.254108] kjournald2+0xe3/0x3a0
[ 8.254567] ? replenish_dl_entity.cold+0x1d/0x1d
[ 8.255364] ? __jbd2_debug+0x50/0x50
[ 8.255886] kthread+0x126/0x140
[ 8.256408] ? kthread_delayed_work_timer_fn+0xa0/0xa0
[ 8.257324] ret_from_fork+0x3a/0x50
[ 8.257916] ---[ end trace 9acad1489f655cc4 ]---
[ 8.258799] RIP: 0010:jbd2_journal_commit_transaction+0x1565/0x1f35
[ 8.259742] Code: f0 fe ff ff 48 c7 c2 b8 52 3a 8c be 4e 00 00 00 48 c7 c7 3f 06 3f 8c c6 05 a8 c5 5a 01 01 e8 8f 15 d4 ff e9 cc fe ff ff 0f 0b <0f> 0b 0f 0b 0f 0b e8 10 a0 d5 ff 85 c0 0f 85 15 fb ff ff 48 c7 c2
[ 8.264348] RSP: 0018:ffffaa64c22cbcf0 EFLAGS: 00010283
[ 8.265803] RAX: 00000000000000df RBX: ffff8ed0b8b7f028 RCX: 0000000000000000
[ 8.267610] RDX: 0000000000000000 RSI: 00000000000000e2 RDI: ffff8ed0bdbd6608
[ 8.269498] RBP: ffffaa64c22cbe80 R08: ffff8ed0bdbd6608 R09: 0000000000000000
[ 8.271295] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 8.273021] R13: ffff8ed0b52045a0 R14: ffff8ed0b5204540 R15: ffff8ed0b8b7f000
[ 8.274792] FS: 0000000000000000(0000) GS:ffff8ed0bda00000(0000) knlGS:0000000000000000
[ 8.276789] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 8.278152] CR2: 00005601514547c0 CR3: 00000000722c4006 CR4: 0000000000360ee0
[ 8.279796] ------------[ cut here ]------------
[ 8.280909] WARNING: CPU: 1 PID: 1384 at kernel/exit.c:723 do_exit+0x47/0xb70
[ 8.282588] CPU: 1 PID: 1384 Comm: jbd2/vdc-8 Tainted: G D 5.4.0-rc3-xfstests-00022-g6db1a59f1c6a-dirty #1234
[ 8.284979] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
[ 8.286909] RIP: 0010:do_exit+0x47/0xb70
[ 8.287809] Code: 00 00 48 89 44 24 38 31 c0 65 48 8b 1c 25 c0 5d 01 00 48 8b 83 20 12 00 00 48 85 c0 74 0e 48 8b 10 48 39 d0 0f 84 71 04 00 00 <0f> 0b 65 44 8b 25 07 fa 15 75 41 81 e4 00 ff 1f 00 44 89 64 24 0c
[ 8.290621] RSP: 0018:ffffaa64c22cbee0 EFLAGS: 00010216
[ 8.291398] RAX: ffffaa64c22cbdc0 RBX: ffff8ed0b5aa6400 RCX: 0000000000000000
[ 8.292582] RDX: ffff8ed0ba5e4548 RSI: 0000000000000000 RDI: 000000000000000b
[ 8.293818] RBP: 000000000000000b R08: 0000000000000000 R09: 0000000000000000
[ 8.295187] R10: 0000000000000008 R11: ffffaa64c22cba1d R12: 000000000000000b
[ 8.296506] R13: 0000000000000002 R14: 0000000000000006 R15: ffff8ed0b5aa6400
[ 8.297843] FS: 0000000000000000(0000) GS:ffff8ed0bda00000(0000) knlGS:0000000000000000
[ 8.299363] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 8.300503] CR2: 00005601514547c0 CR3: 00000000722c4006 CR4: 0000000000360ee0
[ 8.301841] Call Trace:
[ 8.302275] ? __jbd2_debug+0x50/0x50
[ 8.303003] ? kthread+0x126/0x140
[ 8.303754] rewind_stack_do_exit+0x17/0x20
[ 8.304485] irq event stamp: 134503
[ 8.305232] hardirqs last enabled at (134503): [<ffffffff8ae017ea>] trace_hardirqs_on_thunk+0x1a/0x20
[ 8.306951] hardirqs last disabled at (134501): [<ffffffff8bc002b0>] __do_softirq+0x2b0/0x42a
[ 8.308579] softirqs last enabled at (134502): [<ffffffff8bc0032a>] __do_softirq+0x32a/0x42a
[ 8.310100] softirqs last disabled at (134495): [<ffffffff8aeb84d3>] irq_exit+0xb3/0xc0
[ 8.311524] ---[ end trace 9acad1489f655cc5 ]---
QEMU: Terminated
\r
next prev parent reply other threads:[~2019-10-19 19:19 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-03 22:05 [PATCH 0/19 v3] ext4: Fix transaction overflow due to revoke descriptors Jan Kara
2019-11-05 16:44 ` [PATCH 0/25 " Jan Kara
2019-10-03 22:05 ` [PATCH 01/22] jbd2: Fix possible overflow in jbd2_log_space_left() Jan Kara
2019-10-21 1:08 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 02/22] jbd2: Fixup stale comment in commit code Jan Kara
2019-10-21 1:08 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 03/22] ext4: Do not iput inode under running transaction in ext4_mkdir() Jan Kara
2019-10-21 1:21 ` Theodore Y. Ts'o
2019-10-24 10:19 ` Jan Kara
2019-10-24 12:09 ` Theodore Y. Ts'o
2019-10-24 13:37 ` Jan Kara
2019-11-04 12:35 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 04/22] ext4: Fix credit estimate for final inode freeing Jan Kara
2019-10-21 1:07 ` Theodore Y. Ts'o
2019-10-24 10:30 ` Jan Kara
2019-10-03 22:05 ` [PATCH 05/22] ext4: Fix ext4_should_journal_data() for EA inodes Jan Kara
2019-10-21 1:38 ` Theodore Y. Ts'o
2019-10-23 16:55 ` Jan Kara
2019-10-03 22:05 ` [PATCH 06/22] ext4: Use ext4_journal_extend() instead of jbd2_journal_extend() Jan Kara
2019-10-21 1:39 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 07/22] ext4: Avoid unnecessary revokes in ext4_alloc_branch() Jan Kara
2019-10-21 13:39 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 08/22] ext4: Provide function to handle transaction restarts Jan Kara
2019-10-21 16:20 ` Theodore Y. Ts'o
2019-10-23 16:25 ` Jan Kara
2019-10-03 22:05 ` [PATCH 09/22] ext4, jbd2: Provide accessor function for handle credits Jan Kara
2019-10-21 16:21 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 10/22] ocfs2: Use accessor function for h_buffer_credits Jan Kara
2019-10-21 16:21 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 11/22] jbd2: Fix statistics for the number of logged blocks Jan Kara
2019-10-21 16:24 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 12/22] jbd2: Reorganize jbd2_journal_stop() Jan Kara
2019-10-21 17:29 ` Theodore Y. Ts'o
2019-10-03 22:05 ` [PATCH 13/22] jbd2: Drop pointless check from jbd2_journal_stop() Jan Kara
2019-10-21 17:30 ` Theodore Y. Ts'o
2019-10-03 22:06 ` [PATCH 14/22] jbd2: Drop pointless wakeup " Jan Kara
2019-10-21 17:34 ` Theodore Y. Ts'o
2019-10-03 22:06 ` [PATCH 15/22] jbd2: Factor out common parts of stopping and restarting a handle Jan Kara
2019-10-21 17:49 ` Theodore Y. Ts'o
2019-10-23 16:17 ` Jan Kara
2019-11-04 12:36 ` Theodore Y. Ts'o
2019-11-04 12:59 ` Jan Kara
2019-10-03 22:06 ` [PATCH 16/22] jbd2: Account descriptor blocks into t_outstanding_credits Jan Kara
2019-10-21 21:04 ` Theodore Y. Ts'o
2019-10-23 13:09 ` Jan Kara
2019-10-03 22:06 ` [PATCH 17/22] jbd2: Drop jbd2_space_needed() Jan Kara
2019-10-21 21:05 ` Theodore Y. Ts'o
2019-10-03 22:06 ` [PATCH 18/22] jbd2: Reserve space for revoke descriptor blocks Jan Kara
2019-10-21 21:47 ` Theodore Y. Ts'o
2019-10-23 13:27 ` Jan Kara
2019-10-03 22:06 ` [PATCH 19/22] jbd2: Rename h_buffer_credits to h_total_credits Jan Kara
2019-10-21 21:48 ` Theodore Y. Ts'o
2019-10-03 22:06 ` [PATCH 20/22] jbd2: Make credit checking more strict Jan Kara
2019-10-21 22:29 ` Theodore Y. Ts'o
2019-10-23 13:30 ` Jan Kara
2019-10-03 22:06 ` [PATCH 21/22] ext4: Reserve revoke credits for freed blocks Jan Kara
2019-10-21 23:18 ` Theodore Y. Ts'o
2019-10-23 16:13 ` Jan Kara
2019-11-04 13:08 ` Theodore Y. Ts'o
2019-11-05 8:31 ` Jan Kara
2019-10-03 22:06 ` [PATCH 22/22] jbd2: Provide trace event for handle restarts Jan Kara
2019-10-21 23:18 ` Theodore Y. Ts'o
2019-10-19 19:19 ` Theodore Y. Ts'o [this message]
2019-10-24 13:09 ` [PATCH 0/19 v3] ext4: Fix transaction overflow due to revoke descriptors Jan Kara
2019-10-24 15:12 ` Jan Kara
2019-11-04 3:32 ` Theodore Y. Ts'o
2019-11-04 11:22 ` Jan Kara
2019-11-04 13:09 ` Theodore Y. Ts'o
2019-11-05 16:44 ` [PATCH 01/25] jbd2: Fix possible overflow in jbd2_log_space_left() Jan Kara
2019-11-05 16:44 ` [PATCH 02/25] jbd2: Fixup stale comment in commit code Jan Kara
2019-11-05 16:44 ` [PATCH 03/25] jbd2: Completely fill journal descriptor blocks Jan Kara
2019-11-05 16:44 ` [PATCH 04/25] ext4: Move marking of handle as sync to ext4_add_nondir() Jan Kara
2019-11-05 16:44 ` [PATCH 05/25] ext4: Do not iput inode under running transaction Jan Kara
2019-11-05 16:44 ` [PATCH 06/25] ext4: Fix credit estimate for final inode freeing Jan Kara
2019-11-05 21:00 ` Theodore Y. Ts'o
2019-11-05 16:44 ` [PATCH 07/25] ext4: Fix ext4_should_journal_data() for EA inodes Jan Kara
2019-11-05 16:44 ` [PATCH 08/25] ext4: Use ext4_journal_extend() instead of jbd2_journal_extend() Jan Kara
2019-11-05 16:44 ` [PATCH 09/25] ext4: Avoid unnecessary revokes in ext4_alloc_branch() Jan Kara
2019-11-05 16:44 ` [PATCH 10/25] ext4: Provide function to handle transaction restarts Jan Kara
2019-11-05 16:44 ` [PATCH 11/25] ext4, jbd2: Provide accessor function for handle credits Jan Kara
2019-11-05 16:44 ` [PATCH 12/25] ocfs2: Use accessor function for h_buffer_credits Jan Kara
2019-11-05 16:44 ` [PATCH 13/25] jbd2: Fix statistics for the number of logged blocks Jan Kara
2019-11-05 16:44 ` [PATCH 14/25] jbd2: Reorganize jbd2_journal_stop() Jan Kara
2019-11-05 16:44 ` [PATCH 15/25] jbd2: Drop pointless check from jbd2_journal_stop() Jan Kara
2019-11-05 16:44 ` [PATCH 16/25] jbd2: Drop pointless wakeup " Jan Kara
2019-11-05 16:44 ` [PATCH 17/25] jbd2: Factor out common parts of stopping and restarting a handle Jan Kara
2019-11-05 16:44 ` [PATCH 18/25] jbd2: Account descriptor blocks into t_outstanding_credits Jan Kara
2019-11-05 16:44 ` [PATCH 19/25] jbd2: Drop jbd2_space_needed() Jan Kara
2019-11-05 16:44 ` [PATCH 20/25] jbd2: Reserve space for revoke descriptor blocks Jan Kara
2019-11-15 7:52 ` Eric Biggers
2019-11-15 10:02 ` Jan Kara
2019-11-15 14:20 ` Theodore Y. Ts'o
2019-11-15 17:10 ` Eric Biggers
2019-11-05 16:44 ` [PATCH 21/25] jbd2: Rename h_buffer_credits to h_total_credits Jan Kara
2019-11-05 16:44 ` [PATCH 22/25] jbd2: Make credit checking more strict Jan Kara
2019-11-05 16:44 ` [PATCH 23/25] ext4: Reserve revoke credits for freed blocks Jan Kara
2019-11-05 16:44 ` [PATCH 24/25] jbd2: Provide trace event for handle restarts Jan Kara
2019-11-05 16:44 ` [PATCH 25/25] jbd2: Fine tune estimate of necessary descriptor blocks Jan Kara
2019-11-05 21:04 ` [PATCH 0/25 v3] ext4: Fix transaction overflow due to revoke descriptors Theodore Y. Ts'o
[not found] ` <20191112220614.GA11089@mit.edu>
[not found] ` <20191113094545.GC6367@quack2.suse.cz>
2019-11-14 5:26 ` [PATCH 0/19 " Theodore Y. Ts'o
2019-11-14 8:49 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191019191933.GA25841@mit.edu \
--to=tytso@mit.edu \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.