glebius
1ea1d562a3
Once pf became not covered by a single mutex, many counters in it became
...
race prone. Some just gather statistics, but some are later used in
different calculations.
A real problem was the race provoked underflow of the states_cur counter
on a rule. Once it goes below zero, it wraps to UINT32_MAX. Later this
value is used in pf_state_expires() and any state created by this rule
is immediately expired.
Thus, make fields states_cur, states_tot and src_nodes of struct
pf_rule be counter(9)s.
Thanks to Dennis for providing me shell access to problematic box and
his help with reproducing, debugging and investigating the problem.
Thanks to: Dennis Yusupoff <dyr smartspb.net>
Also reported by: dumbbell, pgj, Rambler
Sponsored by: Nginx, Inc.
2014-02-14 10:05:21 +00:00
..
2013-07-28 18:44:17 +00:00
2011-12-17 00:26:45 +00:00
2011-11-04 13:36:02 +00:00
2013-10-01 18:41:53 +00:00
2014-01-10 12:18:05 +00:00
2014-02-09 21:42:01 +00:00
2013-10-01 18:41:53 +00:00
2012-12-08 22:16:36 +00:00
2011-04-18 20:28:07 +00:00
2012-10-22 03:00:37 +00:00
2013-12-13 22:58:57 +00:00
2013-07-12 06:03:25 +00:00
2014-02-06 21:36:14 +00:00
2013-06-11 17:46:32 +00:00
2012-11-29 05:16:50 +00:00
2013-05-16 20:07:08 +00:00
2013-04-30 07:22:03 +00:00
2014-02-04 22:20:17 +00:00
2013-11-27 17:59:13 +00:00
2013-08-07 00:00:48 +00:00
2013-03-16 22:02:47 +00:00
2012-10-21 12:01:19 +00:00
2013-12-30 05:02:57 +00:00
2012-11-03 09:18:37 +00:00
2013-12-30 01:17:05 +00:00
2012-09-27 23:31:06 +00:00
2013-10-01 18:41:53 +00:00
2014-01-09 20:06:14 +00:00
2012-10-19 05:43:38 +00:00
2014-02-09 14:28:47 +00:00
2013-10-15 21:04:46 +00:00
2013-10-26 08:38:21 +00:00
2014-02-05 18:13:27 +00:00
2013-11-05 14:11:31 +00:00
2014-02-08 13:51:15 +00:00
2013-09-06 23:11:19 +00:00
2014-02-12 09:59:48 +00:00
2013-12-17 10:33:27 +00:00
2014-01-13 17:14:10 +00:00
2014-01-22 17:15:17 +00:00
2013-03-19 16:57:04 +00:00
2012-05-31 08:22:02 +00:00
2013-04-19 19:45:00 +00:00
2013-12-04 07:38:23 +00:00
2012-03-29 05:02:12 +00:00
2010-11-22 20:10:48 +00:00
2011-02-15 07:25:54 +00:00
2013-07-18 05:46:33 +00:00
2013-03-05 23:05:43 +00:00
2012-10-19 05:43:38 +00:00
2013-10-01 18:41:53 +00:00
2013-12-08 00:59:04 +00:00
2013-03-05 22:41:35 +00:00
2014-02-04 21:15:15 +00:00
2013-03-05 22:41:35 +00:00
2012-05-17 11:29:22 +00:00
2012-10-22 03:00:37 +00:00
2014-02-09 14:28:47 +00:00
2013-10-01 18:41:53 +00:00
2013-10-01 18:41:53 +00:00
2013-10-15 07:37:30 +00:00
2014-01-06 23:48:47 +00:00
2014-02-14 10:05:21 +00:00
2013-01-01 18:28:21 +00:00
2014-02-04 21:43:53 +00:00
2013-05-08 21:04:19 +00:00
2012-09-27 23:31:06 +00:00
2012-10-19 05:43:38 +00:00
2013-07-01 22:38:36 +00:00
2013-10-01 18:41:53 +00:00
2011-03-18 12:18:52 +00:00
2012-10-22 03:07:05 +00:00
2014-01-11 09:44:00 +00:00
2013-05-13 18:13:50 +00:00
2011-06-08 21:59:07 +00:00
2012-12-16 23:09:27 +00:00
2013-01-16 05:03:46 +00:00
2013-03-19 21:40:14 +00:00
2012-04-07 09:05:30 +00:00
2013-12-21 11:59:58 +00:00
2013-11-26 19:14:18 +00:00
2013-05-16 21:04:56 +00:00
2012-11-15 15:06:21 +00:00
2013-12-02 08:21:28 +00:00
2012-09-17 21:41:38 +00:00
2010-09-13 02:25:21 +00:00
2012-09-17 21:41:38 +00:00
2010-09-13 02:25:21 +00:00
2010-09-13 02:25:21 +00:00
2010-09-13 02:25:21 +00:00
2010-09-13 02:25:21 +00:00