Some more info about my problems with netstat:

Program received signal SIGSEGV, Segmentation fault.
0x08049941 in prg_cache_get (inode=-979118814) at netstat.c:281
281             if (pn->inode==inode) return(pn->name);
(gdb) print pn
$1 = (struct prg_node *) 0x68
(gdb) print hi
$2 = 4294967185
(gdb) up
#1  0x0804ca82 in unix_do_one (nr=15,
    line=0xbfffd420 "f3c0a0e0: 0000000D 00000000 00000000 0002 01 -979118814 
/dev/log\n") at netstat.c:1215
1215            printf("%-" PROGNAME_WIDTHs "s",(has & 
HAS_INODE?prg_cache_get(inode):"-"));
(gdb) print inode
$4 = -979118814

That's a very strange inode, especially since ls disagrees:
$ ls --inode /dev/log
   5195 /dev/log=

It gets that info from

#2  0x0804cc82 in unix_info () at netstat.c:1237
1237            INFO_GUTS(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one);

now, _PATH_PROCNET_UNIX is /proc/net/unix, and lo and behold:

$ cat /proc/net/unix | grep /dev/log
f3c0a0e0: 0000000D 00000000 00000000 0002 01 -979118814 /dev/log

In fact, all the inodes in /proc/net/unix are messed up.

If I do

# service syslog restart

then I get

# cat /proc/net/unix | grep /dev/log
c7b460c0: 00000003 00000000 00000000 0002 01 -757341101 /dev/log

The inode is still messed up.

Now I have:

# rpm -q sysklogd
sysklogd-1.4.1-4mdk

which is the latest version I believe.  How can I get the entries in
/proc/net/unix to be correct without a reboot?


-- 
Ryan T. Sammartino
http://members.shaw.ca/ryants/
A general leading the State Department resembles a dragon commanding ducks.
                -- New York Times, Jan. 20, 1981

Reply via email to