panic: sodealloc(): so_count 1

Gleb Kozyrev gkozyrev at ukr.net
Thu Aug 10 16:35:32 UTC 2006


Robert Watson wrote to "Gleb Kozyrev" <gkozyrev at ukr.net> on Thu, 10 Aug 2006 11:40:03 +0100 (BST):

>> i386 7.0-CURRENT #0: Sun Aug 6 repeatedly panics when doing some default 
>> periodic jobs at 3 AM.

RW> Could you file a PR for this, and forward me the PR receipt?  I'd be
RW> happy to investigate this problem.  I've seen one or two other reports
RW> of so_count 1, but not in a way that's reproduceable.  The output of the
RW> following DDB commands would be most helpful:

RW>    show pcpu
RW>    show allpcpu
RW>    alltrace
RW>    show  alllocks

Here you are: kern/101763

RW> It may also be useful to set up serial GDB, in order to do things like
RW> print the contents of *so in sodealloc().

I didn't manage to do it.
It looks like kernel switches to remote gdb mode successfully but kgdb
fails to communicate.

This place in socreate() looks weird to me:
=========Beginning of the citation============== 
  so->so_count = 1;
  error = (*prp->pr_usrreqs->pru_attach)(so, proto, td);
  if (error) {
    sodealloc(so);
    return (error);
  }
=========The end of the citation================ 
It will panic on error.
Wasn't the intent here to return the error code?

-- 
With best regards, Gleb Kozyrev. 




More information about the freebsd-current mailing list