Date: Tue, 1 Aug 2006 13:28:46 -0500 From: ejc <eric.j.christeson@gmail.com> To: "m.ehinger@ltur.de" <m.ehinger@ltur.de> Cc: freebsd-stable@freebsd.org Subject: Re: ncplogin panic Message-ID: <7e3339060608011128rd7034ebg6f7dd029a00c4f2@mail.gmail.com> In-Reply-To: <OF7528D9D2.2C92731A-ONC12571BD.00292BB3-C12571BD.002A2EAE@gateway-inter.net> References: <OF7528D9D2.2C92731A-ONC12571BD.00292BB3-C12571BD.002A2EAE@gateway-inter.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On 8/1/06, m.ehinger@ltur.de <m.ehinger@ltur.de> wrote: > > Hi, > > i had the same problem. See my thread on the freebsd-fs mailinglist > > http://lists.freebsd.org/pipermail/freebsd-fs/2006-July/002060.html > > > After some research i use the attached patch against ncp_sock.c. > > So it is not the real solution to this problem it only avoids the panics. I'm using it quiet a while without any other known > problems. > Hopefully someone with more knowledge can help on this. > > I also get some "md_get_mem(461): incomplete copy" messages which seem to do no harm, so far. > > Regards, > > Maik > > > !!! Use atyour own risk !!! > > --- ncp_sock.c.orig Fri Jan 7 02:45:49 2005 > +++ ncp_sock.c Thu Jul 20 14:12:45 2006 > @@ -189,7 +189,12 @@ > struct thread *td = curthread; > struct ucred *cred = NULL; > > - return so->so_proto->pr_usrreqs->pru_sopoll(so, events, cred, td); > + if ( td->td_selq.tqh_last == NULL ) { > + printf("ncp_poll: td->td_selq.tqh_last == NULL\n"); > + return 0; > + } > + > + return so->so_proto->pr_usrreqs->pru_sopoll(so, events, cred, td); > } > > int > > ---- pach ends here --- After setting my bios to only use one CPU I was able to get a core dump and the panic is happening at the exact same place as yours: in selrecord (../../../kern/sys_generic.c:1105) 1100 * it alone as we've already added pointed it at us and added it to 1101 * our list. 1102 */ 1103 if (sip->si_thread == NULL) { 1104 sip->si_thread = selector; 1105 TAILQ_INSERT_TAIL(&selector->td_selq, sip, si_thrlist); 1106 } else if (sip->si_thread != selector) { 1107 sip->si_flags |= SI_COLL; 1108 } 1109 I found your backtrace by digging a bit through the freebsd-fs list and we appear to be reaching selrecord though different paths. Mine is in sopoll() at ../../../kern/uipc_socket.c:2059 I don't know if it makes a difference, but I'm trying to use IP instead of IPX to access our server. My dump backtrace is attached. Thanks Eric [-- Attachment #2 --] Script started on Tue Aug 1 13:24:46 200 ejc@chicadee$ sudo kgdb kernel.debug vmcore.0 [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd". Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x0 fault code = supervisor write, page not present instruction pointer = 0x20:0xc0507520 stack pointer = 0x28:0xc627e8dc frame pointer = 0x28:0xc627e8e4 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 662 (ncplogin) trap number = 12 panic: page fault cpuid = 0 Uptime: 46s Dumping 63 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 63MB (16128 pages) 48 32 16 #0 doadump () at pcpu.h:165 165 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc04e2676 in boot (howto=260) at ../../../kern/kern_shutdown.c:409 #2 0xc04e299d in panic (fmt=0xc0629280 "%s") at ../../../kern/kern_shutdown.c:565 #3 0xc0610ca4 in trap_fatal (frame=0xc627e89c, eva=0) at ../../../i386/i386/trap.c:836 #4 0xc06109e3 in trap_pfault (frame=0xc627e89c, usermode=0, eva=0) at ../../../i386/i386/trap.c:744 #5 0xc061063d in trap (frame= {tf_fs = -1872101368, tf_es = -322699224, tf_ds = 40, tf_edi = 0, tf_esi = -1049309184, tf_ebp = -970463004, tf_isp = -970463032, tf_ebx = -1049143840, tf_edx = -1049309184, tf_ecx = -1049143920, tf_eax = 0, tf_trapno = 12, tf_err = 2, tf_eip = -1068468960, tf_cs = 32, tf_eflags = 66118, tf_esp = -1049143920, tf_ss = 1}) at ../../../i386/i386/trap.c:434 #6 0xc05fd1aa in calltrap () at ../../../i386/i386/exception.s:139 #7 0xc0507520 in selrecord (selector=0xc174d000, sip=0xc17755e0) at ../../../kern/sys_generic.c:1105 #8 0xc051eed7 in sopoll (so=0xc1775590, events=1, active_cred=0x0, td=0xc174d000) at ../../../kern/uipc_socket.c:2059 #9 0xc072cde5 in ?? () #10 0xc1775590 in ?? () #11 0x00000001 in ?? () #12 0x00000000 in ?? () #13 0xc174d000 in ?? () #14 0xc627e9a4 in ?? () #15 0xc072f74a in ?? () #16 0xc1775590 in ?? () #17 0x00000001 in ?? () #18 0xc627e940 in ?? () #19 0xc07346bc in ?? () #20 0x00000000 in ?? () #21 0xc1490480 in ?? () #22 0x00000000 in ?? () #23 0xc627e95c in ?? () #24 0xc174d000 in ?? () #25 0xc1626100 in ?? () #26 0x00000007 in ?? () #27 0x00000000 in ?? () #28 0x00000000 in ?? () #29 0xc1490480 in ?? () #30 0xc12a00f0 in ?? () #31 0xc627e990 in ?? () #32 0xc072f4ae in ?? () #33 0xc1490480 in ?? () #34 0x00001111 in ?? () #35 0x00000000 in ?? () #36 0xc1626100 in ?? () #37 0xc174d000 in ?? () #38 0xc176b780 in ?? () #39 0x00000048 in ?? () #40 0xc0731660 in ?? () #41 0x00000002 in ?? () #42 0x00000000 in ?? () #43 0xc1626100 in ?? () #44 0xc627e9bc in ?? () #45 0xc072d5ca in ?? () #46 0x00000000 in ?? () #47 0xc1626100 in ?? () #48 0xc12a00f0 in ?? () #49 0xc627e9bc in ?? () #50 0xc072d5ee in ?? () #51 0xc1490480 in ?? () #52 0xc1490480 in ?? () #53 0x00000000 in ?? () #54 0xc1626100 in ?? () ---Type <return> to continue, or q <return> to quit--- #55 0xc627e9d0 in ?? () #56 0xc072c456 in ?? () #57 0xc1626100 in ?? () #58 0x00000000 in ?? () #59 0xc627ebd8 in ?? () #60 0xc627ec54 in ?? () #61 0xc072ea57 in ?? () #62 0xc1626100 in ?? () #63 0xc067ca00 in vop_lock_vp_offsets () #64 0xc1774cc0 in ?? () #65 0x00003002 in ?? () #66 0xc627e9f4 in ?? () #67 0xc04b83d4 in dev_relthread (dev=0x0) at ../../../kern/kern_conf.c:135 Previous frame inner to this frame (corrupt stack?) (kgdb) ejc@chicadee$ Script done on Tue Aug 1 13:25:19 200help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7e3339060608011128rd7034ebg6f7dd029a00c4f2>
