Re: kern/125239: [gre] kernel crash when using gre

2010-02-17 Thread Jeff Mo
The following reply was made to PR kern/125239; it has been noted by GNATS.

From: Jeff Mo 
To: bug-follo...@freebsd.org, damien.sau...@uclouvain.be
Cc:  
Subject: Re: kern/125239: [gre] kernel crash when using gre
Date: Wed, 17 Feb 2010 10:32:00 -0800

 --00504502c5f9e57206047fd010ce
 Content-Type: text/plain; charset=ISO-8859-1
 
 Hello all,
 
 I found the solution about why this bug occurs :
 <http://www.freebsd.org/cgi/query-pr.cgi?pr=125239&cat=>
 I would like to contribute my knowledge to FreeBSD website and you can
 find my solution in the attached. Please let me know your comment and
 look forward to your reply.
 
 Thanks,
 -- 
 Jeff Mo
 Santa Clara University
 Linux+, SCJP, SCWCD, MCSD
 
 --00504502c5f9e57206047fd010ce
 Content-Type: application/octet-stream; name=kern_125239
 Content-Disposition: attachment; filename=kern_125239
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_g5sgk88g0
 
 VGhlIHByb2JsZW0gaW4gMTI1MjM5IG9jY3VycyBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBv
 ZiBpbl9zZXRfdHVubmVsIGZ1bmN0aW9uIGluCgphZl9pbmV0LmMgd3JvbmdseSBjcmVhdGVzIGEg
 bG9jYWwgc3RydWN0IHZhcmlhYmxlIChhZGRyZXEpLCByYXRoZXIgdGhhbiB1c2luZyBleGlzdGlu
 ZwoKZ2xvYmFsIHN0cnVjdCB2YXJpYWJsZShpbl9hZGRyZXEpLCB0byBzdG9yZSByZWxhdGVkIGFk
 ZHJlc3MgaW5mb3JtYXRpb24gb2YgdHVubmVsLgoKVGhlcmVmb3JlLCB3aGVuIHdlIHVzZSBnZGIg
 dG8gdHJhY2UgdGhlIGNvZGUgYmVmb3JlIGVudGVyaW5nIGlvY3RsLCB3ZSBmb3VuZCB0aGF0IGFm
 cAoKLT5hZl9hZGRyZXEgZG9lcyBub3QgY2FycnkgYW55IHNvdXJjZSBhbmQgZGVzdGluYXRpb24g
 YWRkcmVzcyBpbmZvcm1hdGlvbiBpbnRvIGtlcm5lbC4KVGhlIGZvbGxvd2luZyBzaG93cyB0aGUg
 dHJhY2luZyByZXN1bHQgYmVmb3JlIG1vZGlmaWNhdGlvbjoKCihnZGIpIHAgKihzdHJ1Y3QgaWZh
 bGlhc3JlcSAqKWFmcC0+YWZfYWRkcmVxCiQxID0gewogIGlmcmFfbmFtZSA9ICdcMCcgPHJlcGVh
 dHMgMTUgdGltZXM+LAogIGlmcmFfYWRkciA9IHsKICAgIHNhX2xlbiA9IDAgJ1wwJywKICAgIHNh
 X2ZhbWlseSA9IDAgJ1wwJywKICAgIHNhX2RhdGEgPSAnXDAnIDxyZXBlYXRzIDEzIHRpbWVzPgog
 IH0sCiAgaWZyYV9icm9hZGFkZHIgPSB7CiAgICBzYV9sZW4gPSAwICdcMCcsCiAgICBzYV9mYW1p
 bHkgPSAwICdcMCcsCiAgICBzYV9kYXRhID0gJ1wwJyA8cmVwZWF0cyAxMyB0aW1lcz4KICB9LAog
 IGlmcmFfbWFzayA9IHsKICAgIHNhX2xlbiA9IDE2ICdcMDIwJywKICAgIHNhX2ZhbWlseSA9IDAg
 J1wwJywKICAgIHNhX2RhdGEgPSAiXDAwMFwwMDDDg8K/w4PCv8ODwr/Dg8K/XDAwMFwwMDBcMDAw
 XDAwMFwwMDBcMDAwXDAwMCIKICB9Cn0KCk91ciBwcm9wb3NlZCBzb2x1dGlvbiBpcyB2ZXJ5IHN0
 cmFpZ2h0Zm9yd2FyZC4gSW5zdGVhZCBvZiBkZWNsYXJpbmcgYSBuZXcgbG9jYWwKCnZhcmlhYmxl
 LCB3ZSBzaG91bGQgc3RvcmUgYWRkcmVzcyBkYXRhIGluIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhh
 dCB3aWxsIGJlIHVzZWQgYXMgYQoKcGFyYW1ldGVyIG9mIGlvY3RsIGZ1Y3Rpb24uIE9uY2Ugb3Vy
 IGNoYW5nZXMgYXJlIGFwcGxpZWQsIFRoZSBzeXN0ZW0gcnVucyBhcyBub3JtYWwgYXMgaXQgc2hv
 dWxkIGJlIGFuZCBub3QgY3Jhc2ggYWdhaW4uCgpUaGUgZm9sbG93aW5nIGZpeCBpcyBhcHBsaWVk
 IHRvIHNvdXJjZSBmcm9tIHRoZSBGcmVlQlNEIDcuMCByZWxlYXNlCgotLS0gYWZfaW5ldC5jLm9s
 ZCAgICAgICAyMDA4LTA5LTI5IDExOjI1OjMyLjAwMDAwMDAwMCArMDAwMAorKysgYWZfaW5ldC5j
 ICAgMjAwOC0xMC0wMSAwMjowMzoxMS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE2NywxMyArMTY3LDEy
 IEBACiBzdGF0aWMgdm9pZAogaW5fc2V0X3R1bm5lbChpbnQgcywgc3RydWN0IGFkZHJpbmZvICpz
 cmNyZXMsIHN0cnVjdCBhZGRyaW5mbyAqZHN0cmVzKQogewotICAgICAgIHN0cnVjdCBpZmFsaWFz
 cmVxIGFkZHJlcTsKLSAgICAgICBtZW1zZXQoJmFkZHJlcSwgMCwgc2l6ZW9mKGFkZHJlcSkpOwot
 ICAgICAgIHN0cm5jcHkoYWRkcmVxLmlmcmFfbmFtZSwgbmFtZSwgSUZOQU1TSVopOwotICAgICAg
 IG1lbWNweSgmYWRkcmVxLmlmcmFfYWRkciwgc3JjcmVzLT5haV9hZGRyLCBzcmNyZXMtPmFpX2Fk
 ZHItPnNhX2xlbik7Ci0gICAgICAgbWVtY3B5KCZhZGRyZXEuaWZyYV9kc3RhZGRyLCBkc3RyZXMt
 PmFpX2FkZHIsIGRzdHJlcy0+YWlfYWRkci0+c2FfbGVuKTsKKyAgICAgICBtZW1zZXQoJmluX2Fk
 ZHJlcSwgMCwgc2l6ZW9mKGluX2FkZHJlcSkpOworICAgICAgIHN0cm5jcHkoJmluX2FkZHJlcS5p
 ZnJhX25hbWUsIG5hbWUsIElGTkFNU0laKTsKKyAgICAgICBtZW1jcHkoJmluX2FkZHJlcS5pZnJh
 X2FkZHIsIHNyY3Jlcy0+YWlfYWRkciwgc3JjcmVzLT5haV9hZGRyLT5zYV9sZW4pOworICAgICAg
 IG1lbWNweSgmaW5fYWRkcmVxLmlmcmFfZHN0YWRkciwgZHN0cmVzLT5haV9hZGRyLCBkc3RyZXMt
 PmFpX2FkZHItPnNhX2xlbik7CgotICAgICAgIGlmIChpb2N0bChzLCBTSU9DU0lGUEhZQUREUiwg
 JmFkZHJlcSkgPCAwKQorICAgICAgIGlmIChpb2N0bChzLCBTSU9DU0lGUEhZQUREUiwgJmluX2Fk
 ZHJlcSkgPCAwKQogICAgICAgICAgICAgICAgd2FybigiU0lPQ1NJRlBIWUFERFIiKTsKIH0KClRo
 ZSBmb2xsb3dpbmcgc2hvd3MgdGhlIHRyYWNpbmcgcmVzdWx0IGFmdGVyIG1vZGlmaWNhdGlvbjoK
 CihnZGIpIHAgKihzdHJ1Y3QgaWZhbGlhc3JlcSAqKWFmcC0+YWZfYWRkcmVxCiQxID0gewogIGlm
 cmFfbmFtZSA9ICJncmUwIiwgJ1wwJyA8cmVwZWF0cyAxMSB0aW1lcz4sCiAgaWZyYV9hZGRyID0g
 ewogICAgc2FfbGVuID0gMTYgJ1wwMjAnLAogICAgc2FfZmFtaWx5ID0gMiAnXDAwMicsCiAgICBz
 YV9kYXRhID0gIlwwMDBcMDAwXG5cblxuXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAi
 CiAgfSwKICBpZnJhX2Jyb2FkYWRkciA9IHsKICAgIHNhX2xlbiA9IDE2ICdcMDIwJywKICAgIHNh
 X2ZhbWlseSA9IDIgJ1wwMDInLAogICAgc2FfZGF0YSA9ICJcMDAwXDAwMFxuXG5cblwwMDJcMDAw
 XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIgogIH0sCiAgaWZyYV9tYXNrID0gewogICAgc2FfbGVu
 ID0gMTYgJ1wwMjAnLAogICAgc2FfZmFtaWx5ID0gMCAnXDAnLAogICAgc2FfZGF0YSA9ICJcMDAw
 XDAwMMODwr/Dg8K/w4PCv8ODwr9cMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIgogIH0KfQoK
 CkNoaWVoLUZ1IE1vLCBTdHVkZW50CkNPRU4gMjg0LCBPcGVyYXRpbmcgU3lzdGVtcyBDYXNlIFN0
 dWR5ClNhbnRhIENsYXJhIFVuaXZlcnNpdHkKCg==
 --00504502c5f9e57206047fd010ce--
___
freebsd-net@freebsd.org mailing

Question about "kern/125239: [gre] kernel crash when using gre"

2008-08-07 Thread Jeff Mo
Hi Sir,

I am trying to dive deeper into the stack frames of  the following bug:
kern/125239: [gre] kernel crash when using greI use FreeBSD 7.0 and already
reproduce it, but I am not sure about what the following sentence means:
"ifp=Variable "ifp" is not available"?

I will be very thankful if anyone can give me some instruction.

Regards
Jeff

==

(kgdb) f 7
#7  0xc082263b in in_ifinit (ccc.
) at /usr/src/sys/netinet/in.c:817
817 if (rtinitflags(ia)) {
(kgdb) info f
Stack level 7, frame at 0xd22f3b58:
 eip = 0xc082263b in in_ifinit (/usr/src/sys/netinet/in.c:817);
saved eip 0xc0823607
 called by frame at 0xd22f3bb8, caller of frame at 0xd22f3ad4
 source language c.
 Arglist at 0xd22f3b50, args: ifp=Variable "ifp" is not available.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Need Help!

2008-08-16 Thread Jeff Mo
Dear All ,

After I run the following commands three times,

  1 ifconfig gre0 create
  2 ifconfig gre0 tunnel 10.101.1.1 10.101.1.2 netmask 255.255.255.255
  3 ifconfig gre0 destroy

I found something weird:

   1. in /var/log/messages , line 907 , there should be TAILQ_REMOVE because
   of  ifconfig gre0 destroy, but nothing happened.
   2. when i do the command second time, ia1=0xc2df1600 supposed not be
   there.
   3. Some thing wrong with line 914,915,920,921,931,932,937,938
   4. does "ifconfig gre0 destroy" causes TAILQ_REMOVE be called?

Please nicely give me some comments.

Thanks and Regards
Jeff

/var/log/messages

first time

895 Aug 16 16:30:11 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc2df1600
896 Aug 16 16:30:11 JeffMo kernel:
TAILQ_INSERT_TAIL:ia->ia_ifp=0xc27d6c00
897 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00
898 Aug 16 16:30:11 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
899 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00
900 Aug 16 16:30:11 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
901 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00
902 Aug 16 16:30:11 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
903 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00
904 Aug 16 16:30:11 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
905 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600
906 Aug 16 16:30:11 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6c00
907 Aug 16 16:30:11 JeffMo kernel:

second time

908 Aug 16 16:30:34 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc3144d00
909 Aug 16 16:30:34 JeffMo kernel:
TAILQ_INSERT_TAIL:ia->ia_ifp=0xc27d1c00
910 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00
911 Aug 16 16:30:34 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
912 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00
913 Aug 16 16:30:34 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
914 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc2df1600
915 Aug 16 16:30:34 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0x3e391
916 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00
917 Aug 16 16:30:34 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
918 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00
919 Aug 16 16:30:34 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
920 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600
921 Aug 16 16:30:34 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0x3e391
922 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc3144d00
923 Aug 16 16:30:34 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc27d1c00
924 Aug 16 16:30:34 JeffMo kernel:

third time

   925 Aug 16 16:30:57 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc3145800
926 Aug 16 16:30:57 JeffMo kernel:
TAILQ_INSERT_TAIL:ia->ia_ifp=0xc2812400
927 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00
928 Aug 16 16:30:57 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
929 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00
930 Aug 16 16:30:57 JeffMo kernel: before
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
931 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc2df1600
932 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0
933 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00
934 Aug 16 16:30:57 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc2824400
935 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00
936 Aug 16 16:30:57 JeffMo kernel: after
TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000
937 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600
938 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0

#diff -uw in.c.ori in.c

--- in.c.ori2008-08-16 13:50:54.0 +
+++ in.c2008-08-16 16:43:29.0 +
@@ -320,7 +320,23 @@
 ia->ia_broadaddr.sin_family = AF_INET;
 }
 ia->ia_ifp = ifp;
+//add by jeff:start
+ printf("TAILQ_INSERT_TAIL:ia=%p\n" , ia);
+printf("TAILQ_INSERT_TAIL:ia->ia_ifp=%p\n" , ia->ia_ifp);
+struct in_ifaddr *ia1;
+TAILQ_FOREACH(ia1, &in_ifaddrhead, ia_link) {
+ printf("before TAILQ_FOREACH:ia1=%p\n" , ia1);
+ printf("before TAILQ_FOREACH:ia1->ia_ifp=%p\n" ,
ia1->ia_ifp);
+}
+//add by jeff:end
 TAILQ_INSERT_TAIL(&in_ifaddrhead, ia, ia_link);
+//add by jeff:start
+TAILQ_FOREACH(ia1, &in_ifaddrhead, ia_link) {
+ printf("after TAILQ_FOREACH:ia1=%p\n" , ia1);
+