Bug 10768 - Got oops with :ip_tables:get_counters during boot
Summary: Got oops with :ip_tables:get_counters during boot
Status: REJECTED UNREPRODUCIBLE
Alias: None
Product: Networking
Classification: Unclassified
Component: Netfilter/Iptables (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: networking_netfilter-iptables@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-21 03:35 UTC by Zdenek Kabelac
Modified: 2008-06-20 04:09 UTC (History)
0 users

See Also:
Kernel Version: 2.6.26-rc3
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
Snapshot of the ip_table ooops (38.80 KB, image/jpeg)
2008-05-21 03:42 UTC, Zdenek Kabelac
Details
Config file (60.28 KB, application/octet-stream)
2008-05-21 03:54 UTC, Zdenek Kabelac
Details
oops snapshot (33.26 KB, image/jpeg)
2008-05-25 14:50 UTC, Zdenek Kabelac
Details

Description Zdenek Kabelac 2008-05-21 03:35:24 UTC
Latest working kernel version:
Earliest failing kernel version:
Distribution:
Hardware Environment: T61
Software Environment: Fedora rawhide (kernel build from Linus tree)
Problem Description:

Iptable generated an oops on the screen once during the boot - I've had digital cammera - so I've taken a snapshot  - see the attachement
(Kernel has this git commit number:  ec772ac1f415ca0d)


Steps to reproduce:
Happend only once during boot - and I have only digicatal camera snapshot
So I've no idea how to reproduce or check whether its been fixed.
Comment 1 Patrick McHardy 2008-05-21 03:37:42 UTC
The attachment appears to be missing.
Comment 2 Zdenek Kabelac 2008-05-21 03:42:10 UTC
Created attachment 16223 [details]
Snapshot of the ip_table ooops

Here is the code trace of the suspected buggy error place (0xae7)


static inline int
set_entry_to_counter(const struct ipt_entry *e,
		     struct ipt_counters total[],
		     unsigned int *i)
{
	SET_COUNTER(total[*i], e->counters.bcnt, e->counters.pcnt);
     ad9:	48 c1 e0 04          	shl    $0x4,%rax
     add:	48 8b 51 68          	mov    0x68(%rcx),%rdx
     ae1:	49 8d 04 04          	lea    (%r12,%rax,1),%rax

	(*i)++;
     ae5:	ff c7                	inc    %edi
static inline int
set_entry_to_counter(const struct ipt_entry *e,
		     struct ipt_counters total[],
		     unsigned int *i)
{
	SET_COUNTER(total[*i], e->counters.bcnt, e->counters.pcnt);
     ae7:	48 89 50 08          	mov    %rdx,0x8(%rax)
     aeb:	48 8b 51 60          	mov    0x60(%rcx),%rdx
     aef:	48 89 10             	mov    %rdx,(%rax)
	 * We dont care about preemption here.
	 */
	curcpu = raw_smp_processor_id();

	i = 0;
	IPT_ENTRY_ITERATE(t->entries[curcpu],
     af2:	0f b7 41 5a          	movzwl 0x5a(%rcx),%eax
     af6:	01 c6                	add    %eax,%esi
     af8:	39 33                	cmp    %esi,(%rbx)
     afa:	77 d4                	ja     ad0 <get_counters+0x30>
			  t->size,
			  set_entry_to_counter,
			  counters,
			  &i);
Comment 3 Zdenek Kabelac 2008-05-21 03:43:54 UTC
Ahh sorry :) you are too fast ;) - I've wanted to attach also the code, so it has taken some minute.

I hope it helps  somehow.
Comment 4 Patrick McHardy 2008-05-21 03:49:04 UTC
Thanks, I'll look into it. Could you also attach your .config please?
Comment 5 Zdenek Kabelac 2008-05-21 03:54:42 UTC
Created attachment 16224 [details]
Config file

Sure - here it is.
Comment 6 Zdenek Kabelac 2008-05-21 05:59:09 UTC
Also I've copied wrong commit number - this is the right one:
8033c6e9736c29cce5f0d0abbca9a44dffb20c39
Comment 7 Zdenek Kabelac 2008-05-25 14:50:25 UTC
Created attachment 16277 [details]
oops snapshot

Hi - this oops in :ip_tables:do_add_counters happend to me yesterday during doing shutdown  - again I've just a snapshot - the bactrace is different and this time it's probably missing some topmost lines :( -  but there is visible at least the place. Maybe it will help to find the problem ?
Comment 8 Patrick McHardy 2008-05-26 07:15:08 UTC
No luck so far. Could you please also attach the script containing the iptables commands executed on startup? Thanks.
Comment 9 Zdenek Kabelac 2008-06-05 01:51:56 UTC
Here is my /etc/sysconfig/iptables  script file
Maybe the oops is also related to my DEBUG_PAGEALLOC problem I've reported - now I'm running without this option and I do not have also problems with suspend. So something weird might hidden elsewhere...

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
--insert POSTROUTING --source 192.168.122.0/255.255.255.0 --destination ! 192.168.122.0/255.255.255.0 --jump MAS
QUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p ah -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
--insert FORWARD --in-interface virbr0 --jump REJECT
--insert FORWARD --out-interface virbr0 --jump REJECT
--insert FORWARD --in-interface virbr0 --out-interface virbr0 --jump ACCEPT
--insert FORWARD --source 192.168.122.0/255.255.255.0 --in-interface virbr0 --jump ACCEPT
--insert FORWARD --destination 192.168.122.0/255.255.255.0 --out-interface virbr0 --match state --state ESTABLIS
HED,RELATED --jump ACCEPT
--insert INPUT --in-interface virbr0 --protocol tcp --destination-port 67 --jump ACCEPT
--insert INPUT --in-interface virbr0 --protocol udp --destination-port 67 --jump ACCEPT
--insert INPUT --in-interface virbr0 --protocol tcp --destination-port 53 --jump ACCEPT
--insert INPUT --in-interface virbr0 --protocol udp --destination-port 53 --jump ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Comment 10 Patrick McHardy 2008-06-18 04:28:37 UTC
I unsuccessfully tried to reproduce this using your scripts and enabling all the debugging options. I also can't figure out why this would happen, so I'm not sure how to proceed. Maybe you could add a few debugging printks to get some more information?
Comment 11 Zdenek Kabelac 2008-06-18 08:10:10 UTC
Unfortunately this problem might have been related to my usage of the DEBUG_PAGEALLOC option - which was causing me also other problems during suspend on my box - when I've removed this flag from .config I could have reliably suspend. Now I'm using this option again without any problem so far so my memory allocation race might have been fixed - http://bugzilla.kernel.org/show_bug.cgi?id=10851
Also from that time I've not noticed any ip_table oops again - so it these thing could have been related...
Comment 12 Patrick McHardy 2008-06-20 03:25:00 UTC
OK thanks. Since I haven't seen any similar reports of this, you're probably right.

Please update bugzilla status appropriately.

Note You need to log in before you can comment on or make changes to this bug.