ncplogin panic
John Baldwin
john at baldwin.cx
Tue Aug 1 21:32:32 UTC 2006
On Tuesday 01 August 2006 14:28, ejc wrote:
> On 8/1/06, m.ehinger at ltur.de <m.ehinger at 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.
It would be very helpful if you could get the symbols loaded for the modules
in you backtrace. You can either compile everything into a static kernel or
you can use the 'asf' tool to generate appropriate gdb script commands to
source to get symbols for your modules. You can find a kldstat gdb command
in src/tools/debugscripts/ that would be helpful to use with asf.
--
John Baldwin
More information about the freebsd-stable
mailing list