[Click] click-uninstall error

Eddie Kohler kohler at cs.ucla.edu
Tue Nov 30 11:38:09 EST 2004


Beyers,

Why not use 'ksymoops' to find out where the error is?  The stack backtrace 
should tell you.  You can provide it with an explicit map for Click by running 
click-install with the -m option.

Eddie


Beyers Cronje wrote:
> Hi all,
> 
> I get an intermittend "Unable to handle kernel NULL pointer
> dereference" when using click-uninstall.
> 
> Log file and running click config shown at the bottom.
> I'd say around 90% of the time click-uninstall works 100%. 
> 
> I'm running one custom element named "ipStats". Ive
> included the cleanup stage routines of this custom element.
> Am I not cleaning the hashmaps correctly or might this
> error be related to one of the other elements?
> 
> Any ideas ?
> 
> Kind regards
> 
> Beyers Cronje
> 
> ****Cleanup routines***************************
> int P2PStats::initialize(ErrorHandler *) {
> 		_tcp_gc_timer.initialize(this);
> 		_tcp_gc_timer.schedule_after_s(_tcp_gc_interval);
> 		_tcp_done_gc_timer.initialize(this);
> 		_tcp_done_gc_timer.schedule_after_s(_tcp_done_gc_interval);
> 		
> 		_map.set_arena(router()->arena_factory());
> 		return 0;
> };
> 
> void IPStats::clean_map() {
> 		FlowInfo *fi;
>     for (Map::iterator iter = _map.begin(); iter; iter++)
> {	//Clean Flow map
> 	    fi = iter.value();
> 			if (fi != 0)
>       	delete fi;
>     };
> 		potential_supernodes.clear();
> 		for (Map::iterator iter = _to_clean_map.begin(); iter;
> iter++) {	//Clean any entries left in timedout or reset
> flows
> 				fi = iter.value();
> 				if (fi != 0)
> 						delete fi;
> 		};
> };
> 
> void IPStats::cleanup(CleanupStage) {
>     clean_map();
> };
> 
> 
> *******Dump from log************************
> Nov 29 22:38:32 slump kernel: device eth0 entered
> promiscuous mode
> Nov 29 22:41:53 slump kernel: device eth0 left promiscuous
> mode
> Nov 29 22:41:53 slump kernel: Unable to handle kernel NULL
> pointer dereference at virtual address 00000003
> Nov 29 22:41:53 slump kernel:  printing eip:
> Nov 29 22:41:53 slump kernel: f89233b2
> Nov 29 22:41:53 slump kernel: *pde = 00000000
> Nov 29 22:41:53 slump kernel: Oops: 0000
> Nov 29 22:41:53 slump kernel: CPU:    0
> Nov 29 22:41:53 slump kernel: EIP:    0010:[<f89233b2>]
>    Not tainted
> Nov 29 22:41:53 slump kernel: EFLAGS: 00010297
> Nov 29 22:41:53 slump kernel: eax: fffffecf   ebx: 00000003
>   ecx: c0368d60   edx: f602b500
> Nov 29 22:41:53 slump kernel: esi: f5bc23a4   edi: f5bc2380
>   ebp: dacadf5c   esp: dacadd48
> Nov 29 22:41:53 slump kernel: ds: 0018   es: 0018   ss:
> 0018
> Nov 29 22:41:53 slump kernel: Process rmmod (pid: 31559,
> stackpage=dacad000)
> Nov 29 22:41:53 slump kernel: Stack: c017afcc 464c457f
> 00010101 00000000 00000000 00030003 00000001 00000b30
> Nov 29 22:41:53 slump kernel:        00000034 464c457f
> 00010101 00000000 00000000 00030003 00000001 80000b30
> Nov 29 22:41:53 slump kernel:        00000034 000125a8
> 00000000 00200034 00280003 000f0012 41ab8991 41ab8991
> Nov 29 22:41:53 slump kernel: Call Trace:    [<c017afcc>]
> [<c01388b5>] [<c01388b5>] [<c0136db3>] [<c012bbce>]
> Nov 29 22:41:53 slump kernel:   [<c012bf31>] [<c0130a05>]
> [<c012bcb0>] [<c0136db3>] [<c012bbce>] [<c012bf31>]
> Nov 29 22:41:53 slump kernel:   [<c01161e8>] [<f89bb373>]
> [<c016876a>] [<f89bb36d>] [<f89bb36d>] [<f89a69bc>]
> Nov 29 22:41:53 slump kernel:   [<c011cc43>] [<f89a3e77>]
> [<c011d2b1>] [<c011c536>] [<c010760f>]
> Nov 29 22:41:53 slump kernel:
> Nov 29 22:41:53 slump kernel: Code: 8b 1b 50 e8 26 7c 83 c7
> 83 c4 10 39 f3 75 e7 89 77 24 89 77
> 
> ******Click config***********
> 
> ip :: Strip(14)
>     -> MarkIPHeader
>     -> ipc :: IPClassifier(src net 196.0.0.0/8, dst net
> 196.0.0.0/8, -);
>     dialup :: ipStats;
>     lan :: ipStats;
>     ipc[0] -> [0]dialup;
>     ipc[1] -> [1]dialup;
>     dialup -> Discard;
>     ipc[2] -> ipc2 :: IPClassifier(src net 10.10.10.0/24,
> dst net 10.10.10.0/24, -);
>     ipc2[0] -> [0]lan;
>     ipc2[1] -> [1]lan;
>     lan -> Discard;
>     ipc2[2] -> Discard;
> 
> unq :: Unqueue;
> // Input paths for eth0
> c0 :: Classifier(12/0800, -);
> fd :: FromDevice(eth0, PROMISC true, BURST 16);
> fd -> Queue(5000) -> unq -> c0;
> c0[0] -> ip;
> c0[1] -> Discard;
> 
> td :: ToDevice(eth0);
> Idle -> td;
> ScheduleInfo(fd 1, td 0.1, ipStats 1, unq 1);
> 
> _____________________________________________________________________
> For super low premiums, click here http://www.dialdirect.co.za/quote
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list