Pablo Neira Ayuso
0c3c6c00c6
netfilter: nf_conntrack: decrement global counter after object release
nf_conntrack_free() decrements our counter (net->ct.count)
before releasing the conntrack object. That counter is used in the
nf_conntrack_cleanup_net_list path to check if it's time to
kmem_cache_destroy our cache of conntrack objects. I think we have
a race there that should be easier to trigger (although still hard)
with CONFIG_DEBUG_OBJECTS_FREE as object releases become slowier
according to the following splat:
[ 1136.321305] WARNING: CPU: 2 PID: 2483 at lib/debugobjects.c:260
debug_print_object+0x83/0xa0()
[ 1136.321311] ODEBUG: free active (active state 0) object type:
timer_list hint: delayed_work_timer_fn+0x0/0x20
...
[ 1136.321390] Call Trace:
[ 1136.321398] [<ffffffff8160d4a2>] dump_stack+0x45/0x56
[ 1136.321405] [<ffffffff810514e8>] warn_slowpath_common+0x78/0xa0
[ 1136.321410] [<ffffffff81051557>] warn_slowpath_fmt+0x47/0x50
[ 1136.321414] [<ffffffff812f8883>] debug_print_object+0x83/0xa0
[ 1136.321420] [<ffffffff8106aa90>] ? execute_in_process_context+0x90/0x90
[ 1136.321424] [<ffffffff812f99fb>] debug_check_no_obj_freed+0x20b/0x250
[ 1136.321429] [<ffffffff8112e7f2>] ? kmem_cache_destroy+0x92/0x100
[ 1136.321433] [<ffffffff8115d945>] kmem_cache_free+0x125/0x210
[ 1136.321436] [<ffffffff8112e7f2>] kmem_cache_destroy+0x92/0x100
[ 1136.321443] [<ffffffffa046b806>] nf_conntrack_cleanup_net_list+0x126/0x160 [nf_conntrack]
[ 1136.321449] [<ffffffffa046c43d>] nf_conntrack_pernet_exit+0x6d/0x80 [nf_conntrack]
[ 1136.321453] [<ffffffff81511cc3>] ops_exit_list.isra.3+0x53/0x60
[ 1136.321457] [<ffffffff815124f0>] cleanup_net+0x100/0x1b0
[ 1136.321460] [<ffffffff8106b31e>] process_one_work+0x18e/0x430
[ 1136.321463] [<ffffffff8106bf49>] worker_thread+0x119/0x390
[ 1136.321467] [<ffffffff8106be30>] ? manage_workers.isra.23+0x2a0/0x2a0
[ 1136.321470] [<ffffffff8107210b>] kthread+0xbb/0xc0
[ 1136.321472] [<ffffffff81072050>] ? kthread_create_on_node+0x110/0x110
[ 1136.321477] [<ffffffff8161b8fc>] ret_from_fork+0x7c/0xb0
[ 1136.321479] [<ffffffff81072050>] ? kthread_create_on_node+0x110/0x110
[ 1136.321481] ---[ end trace 25f53c192da70825 ]---
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2013-11-18 14:07:19 +01:00
..
2013-10-27 19:24:45 +01:00
2013-11-13 17:40:34 +09:00
2013-10-14 11:29:31 +02:00
2013-11-13 23:31:11 +01:00
2013-10-14 18:00:58 +02:00
2013-11-03 21:48:49 +01:00
2013-04-18 20:27:55 +02:00
2013-11-18 14:07:19 +01:00
2013-04-18 20:27:55 +02:00
2013-07-15 11:14:51 +02:00
2012-06-16 15:08:49 +02:00
2013-05-27 13:32:43 +02:00
2013-10-21 18:37:01 -04:00
2013-04-18 20:27:55 +02:00
2013-04-18 20:27:55 +02:00
2013-07-31 16:39:18 +02:00
2013-11-03 21:49:32 +01:00
2013-04-18 20:27:55 +02:00
2013-04-05 20:12:54 +02:00
2012-07-04 19:37:22 +02:00
2013-04-18 20:27:55 +02:00
2013-04-18 20:27:55 +02:00
2013-08-28 00:27:54 +02:00
2013-04-18 20:27:55 +02:00
2013-04-05 20:12:54 +02:00
2013-08-09 12:03:33 +02:00
2013-02-19 02:48:05 +01:00
2013-11-18 12:53:40 +01:00
2013-10-01 12:47:09 +02:00
2013-01-18 00:28:18 +01:00
2013-06-13 02:36:09 -07:00
2013-04-18 20:27:55 +02:00
2013-01-23 12:56:02 +01:00
2013-01-23 12:55:39 +01:00
2013-10-19 19:12:11 -04:00
2013-06-13 02:36:09 -07:00
2013-04-18 20:27:55 +02:00
2013-10-14 11:29:39 +02:00
2013-02-19 02:48:05 +01:00
2013-08-28 00:26:48 +02:00
2013-02-19 02:48:05 +01:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2013-07-27 20:07:15 -07:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2013-10-01 12:47:09 +02:00
2013-02-19 02:48:05 +01:00
2013-04-29 20:09:05 +02:00
2013-11-18 12:53:38 +01:00
2013-10-14 18:01:02 +02:00
2013-10-14 18:01:02 +02:00
2013-06-05 12:36:36 +02:00
2013-06-20 11:20:13 +02:00
2013-10-01 13:17:39 +02:00
2013-10-01 12:46:56 +02:00
2013-10-01 12:20:31 +02:00
2013-08-28 00:26:48 +02:00
2013-11-08 15:12:11 -05:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 18:00:04 +02:00
2013-11-18 12:53:41 +01:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:07 +02:00
2013-10-14 18:00:04 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:15:48 +02:00
2013-10-14 17:16:08 +02:00
2013-10-28 17:41:49 +01:00
2013-10-14 18:00:56 +02:00
2013-10-14 17:16:07 +02:00
2013-10-22 10:11:29 +02:00
2013-07-31 16:36:25 +02:00
2013-03-04 14:45:25 +01:00
2013-01-21 12:20:19 +01:00
2013-11-03 21:48:49 +01:00
2013-01-18 00:28:15 +01:00
2013-02-27 19:10:24 -08:00
2013-04-18 20:27:55 +02:00
2013-05-23 11:09:29 +02:00
2011-12-27 20:45:25 +01:00
2013-05-01 17:51:54 -07:00
2012-11-09 17:05:07 -08:00
2012-09-28 11:34:33 +09:00
2013-04-18 20:27:55 +02:00
2013-05-29 12:29:18 +02:00
2012-05-09 20:49:18 -04:00
2012-10-15 13:39:12 +02:00
2012-09-21 12:11:08 +02:00
2011-12-25 02:43:17 +01:00
2013-05-15 14:11:07 +02:00
2013-10-29 13:05:54 +01:00
2013-04-05 20:12:54 +02:00
2012-08-14 21:55:30 -07:00
2013-06-11 02:51:03 -07:00
2013-02-27 19:10:24 -08:00
2013-05-01 17:29:18 -04:00
2012-09-21 12:12:05 +02:00
2013-09-30 21:42:52 +02:00
2013-10-17 10:27:25 +02:00
2013-09-27 16:18:23 +02:00
2013-08-01 11:45:15 +02:00
2013-05-28 13:11:01 -07:00
2012-09-24 14:29:01 +02:00
2013-10-09 00:01:25 -04:00