Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Apr 2012 08:51:13 +0300
From:      Mikolaj Golub <trociny@freebsd.org>
To:        Jason Hellenthal <jhellenthal@dataix.net>
Cc:        stable@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r233953 - stable/8/usr.bin/procstat
Message-ID:  <861unxqwq6.fsf@in138.ua3>
In-Reply-To: <20120408211218.GA62178@DataIX.net> (Jason Hellenthal's message of "Sun, 8 Apr 2012 17:12:18 -0400")
References:  <201204061632.q36GWTT2017212@svn.freebsd.org> <20120408211218.GA62178@DataIX.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sun, 8 Apr 2012 17:12:18 -0400 Jason Hellenthal wrote:

 JH> This commit in action does not seem to be doing the correct thing even
 JH> though it does report an error when kern.proc.pathname is not known.

 JH> Running procstat -a -b produces:
 JH> [...]
 JH> 1848 ksh                803500 /bin/ksh
 JH> procstat: sysctl: kern.proc.pathname: 2208: No such file or directory

Plese note, the error was generated by kern.proc.pathname sysctl, not
kern.proc.osrel. I suppose it is because /bin/ksh binary had been reinstalled
and 1848 ran the old binary.

My commit has not touched the kern.proc.pathname part and the same bahavior
was before the change.

 JH> 2210 ksh                803500 /bin/ksh
 JH> [...]

 JH> While procstat -a produces:
 JH> [...]
 JH> 1848  1846  1848  1848  1848   1 jhellenthal wait      FreeBSD ELF32 ksh         
 JH> 2208  1814  2208  2208     0   1 jhellenthal select    FreeBSD ELF32 xterm
 JH> 2210  2208  2210  2210  2210   1 jhellenthal wait      FreeBSD ELF32 ksh
 JH> [...]

 JH> If process 2208 can be seen during (procstat -a) I do not see a reason
 JH> to bailout and print an error when (-b) is used. Just print the
 JH> orrelease as (0) and print the rest of the information that should be
 JH> seen...

 JH> Could someone have a closer look at this?


 JH> On Fri, Apr 06, 2012 at 04:32:29PM +0000, Mikolaj Golub wrote:
 >> Author: trociny
 >> Date: Fri Apr  6 16:32:29 2012
 >> New Revision: 233953
 >> URL: http://svn.freebsd.org/changeset/base/233953
 >> 
 >> Log:
 >>   MFC r233390:
 >>   
 >>   When displaying binary information show also osreldate.
 >>   
 >>   Suggested by:        kib
 >> 
 >> Modified:
 >>   stable/8/usr.bin/procstat/procstat.1
 >>   stable/8/usr.bin/procstat/procstat_bin.c
 >> Directory Properties:
 >>   stable/8/usr.bin/procstat/   (props changed)
 >> 
 >> Modified: stable/8/usr.bin/procstat/procstat.1
 >> ==============================================================================
 >> --- stable/8/usr.bin/procstat/procstat.1        Fri Apr  6 16:31:29 2012        (r233952)
 >> +++ stable/8/usr.bin/procstat/procstat.1        Fri Apr  6 16:32:29 2012        (r233953)
 >> @@ -25,7 +25,7 @@
 >>  .\"
 >>  .\" $FreeBSD$
 >>  .\"
 >> -.Dd March 7, 2010
 >> +.Dd March 23, 2012
 >>  .Dt PROCSTAT 1
 >>  .Os
 >>  .Sh NAME
 >> @@ -98,6 +98,8 @@ Display the process ID, command, and pat
 >>  process ID
 >>  .It COMM
 >>  command
 >> +.It OSREL
 >> +osreldate for process binary
 >>  .It PATH
 >>  path to process binary (if available)
 >>  .El
 >> 
 >> Modified: stable/8/usr.bin/procstat/procstat_bin.c
 >> ==============================================================================
 >> --- stable/8/usr.bin/procstat/procstat_bin.c        Fri Apr  6 16:31:29 2012        (r233952)
 >> +++ stable/8/usr.bin/procstat/procstat_bin.c        Fri Apr  6 16:32:29 2012        (r233953)
 >> @@ -42,11 +42,11 @@ void
 >>  procstat_bin(pid_t pid, struct kinfo_proc *kipp)
 >>  {
 >>          char pathname[PATH_MAX];
 >> -        int error, name[4];
 >> +        int error, osrel, name[4];
 >>          size_t len;
 >>  
 >>          if (!hflag)
 >> -                printf("%5s %-16s %-53s\n", "PID", "COMM", "PATH");
 >> +                printf("%5s %-16s %8s %s\n", "PID", "COMM", "OSREL", "PATH");
 >>  
 >>          name[0] = CTL_KERN;
 >>          name[1] = KERN_PROC;
 >> @@ -64,7 +64,19 @@ procstat_bin(pid_t pid, struct kinfo_pro
 >>          if (len == 0 || strlen(pathname) == 0)
 >>                  strcpy(pathname, "-");
 >>  
 >> +        name[2] = KERN_PROC_OSREL;
 >> +
 >> +        len = sizeof(osrel);
 >> +        error = sysctl(name, 4, &osrel, &len, NULL, 0);
 >> +        if (error < 0 && errno != ESRCH) {
 >> +                warn("sysctl: kern.proc.osrel: %d", pid);
 >> +                return;
 >> +        }
 >> +        if (error < 0)
 >> +                return;
 >> +
 >>          printf("%5d ", pid);
 >>          printf("%-16s ", kipp->ki_comm);
 >> +        printf("%8d ", osrel);
 >>          printf("%s\n", pathname);
 >>  }
 >> _______________________________________________
 >> svn-src-stable-8@freebsd.org mailing list
 >> http://lists.freebsd.org/mailman/listinfo/svn-src-stable-8
 >> To unsubscribe, send any mail to "svn-src-stable-8-unsubscribe@freebsd.org"

 JH> -- 
 JH> ;s =;

-- 
Mikolaj Golub



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?861unxqwq6.fsf>