ncplogin panic

ejc eric.j.christeson at gmail.com
Wed Aug 2 13:17:28 UTC 2006


On 8/1/06, John Baldwin <john at baldwin.cx> wrote:
> 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

Backtrace with module symbols loaded.  It looks almost exactly the
same as Maik's .

Thanks
Eric
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dump.out
Type: application/octet-stream
Size: 8089 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060802/71ab6381/dump.obj


More information about the freebsd-stable mailing list