On Mon, Nov 23, 2015 at 04:24:39PM +0000, Stuart Henderson wrote:
> On 2015/11/23 10:53, David Hill wrote:
> > On Fri, Nov 20, 2015 at 12:07:36PM -0500, David Hill wrote:
> > > Hello -
> > > 
> > > I used to use netstat -P to view PCB information.  Running -current, I
> > > get 'no namelist' now.  Any ideas? 
> > > 
> > > 0xffffff0397c4da50 tcp          0      0  127.0.0.1.33845    
> > > 127.0.0.1.18333    ESTABLISHED
> > > 
> > > # netstat -P 0xffffff0397c4da50
> > > netstat: no namelist
> > > 
> > > Thanks,
> > > David 
> > >
> > 
> > I am not sure if this is a fix or a hint, but it does provide me with
> > the information I used to get.  Did something change that would cause
> > n_type to always be 0 (or unset?)
> > 
> > Index: main.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/netstat/main.c,v
> > retrieving revision 1.108
> > diff -u -p -r1.108 main.c
> > --- main.c  23 Oct 2015 08:18:57 -0000      1.108
> > +++ main.c  23 Nov 2015 15:50:57 -0000
> > @@ -331,7 +331,7 @@ main(int argc, char *argv[])
> >         (need_nlist ? 0 : KVM_NO_FILES), buf)) == NULL)
> >             errx(1, "kvm_openfiles: %s", buf);
> >  
> > -   if (need_nlist && (kvm_nlist(kvmd, nl) < 0 || nl[0].n_type == 0)) {
> > +   if (need_nlist && (kvm_nlist(kvmd, nl) < 0)) {
> >             if (nlistf)
> >                     errx(1, "%s: no namelist", nlistf);
> >             else
> > 
> 
> It doesn't narrow it down very much, but this started somewhere between
> 5.8 and Oct 8th.
> 
> Given that kvm_nlist(3) says "Each symbol is looked up using the n_name
> field, and if found, the corresponding n_type and n_value fields are
> filled in. These fields are set to 0 if the symbol is not found" I think
> it's a hint rather than a fix.
> 

mpi broke it :) I think we no longer have a rt_tables symbol and so the
field is set to 0. Guess someone needs to sit down and write a new KVM
routing table dumper.

I guess in the -P case this check does not make sense but it may actually
make sense to verify that the passed pointer is actually a socket. That is
not going to be trivial...
-- 
:wq Claudio

Reply via email to