Re: kern/125239: [gre] kernel crash when using gre
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"
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!
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); +