Commit Graph

2065 Commits

Author SHA1 Message Date
Craig Small
3a66fba1e9 Merge commit 'refs/merge-requests/33' of git://gitorious.org/procps/procps into merge-requests/33 2014-11-08 17:03:51 +11:00
Jaromir Capik
76f2b442c6 docs: adding latest french man translations 2014-10-30 16:49:10 +01:00
Jim Warner
da06b8fa59 top: tweak forest view protections for forking anomaly
A recent commit eliminated the potential for a storage
violation with forest view mode. It occurred when some
program (erroneously?) created a lengthy forking loop.
However, the associated commit message was misleading.

The message implied that an unexpected order following
a sort on start_time was the cause of storage overruns
and a 'char' used to track nesting level only distorts
the display when it goes negative. Actually, the truth
is really just the opposite. Any start_time sort quirk
causes no harm while that 'char' can yield corruption.

Should some child end up sorted ahead of its parent by
way of an extremely unlikely shared start_time the end
result is such a child will be displayed unnested just
like init or kthreadd along with all its own children.

However, if nesting levels exceeded 255 (and became 0)
a massive array overrun could be triggered when such a
task and *all* its children were added to an array for
the second time. Exactly how much storage was violated
depended on the number of children that zeroed process
had spawned (hinted at via either SIGSEGV or SIGABRT).

The earlier commit limited nested levels to 100 so the
root cause of the storage violation was already fixed.
The potential for distorted nesting levels due to sort
on start_time would seem to remain. But it's extremely
unlikely that 2 tasks would share the same start_time.

Even so, a new #define has been introduced which makes
top impervious to the order of tasks such that a qsort
is no longer necessary (providing an init/systemd task
exists & was harvested as the first task by readproc).
It can be utilized if distorted nesting ever becomes a
real issue. But since there is a 5-10% performance hit
with that, we'll continue using start_time as default.

References(s):
commit ce70017eb1

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-10-29 17:00:03 +01:00
Jim Warner
ce70017eb1 top: provide some protection against forking anomalies
This commit will eliminate a very nasty bug associated
with top's forest view mode.  It addresses a potential
SIGSEGV/SIGABRT that was only encountered when another
program (erroneously?) creates a lengthy forking loop.

If the growing list of nested children is sufficiently
fast such that proc_t start_time is duplicated between
children then the sort upon which top relies might not
produce the expected order. That, in turn, could cause
the forest_adds function to initially miss some child.

But that missed child would be caught by forest_create
and eventually would cause our array boundary overrun.
Such overrun occurs when some child of that originally
*missed* child is found and a duplicate add attempted.

In correcting this bug we'll also use this opportunity
to prohibit a borrowed proc_t padding byte (char) from
going negative. If the nesting level exceeded 127, the
effect was an "unnesting" with the snprintf width then
viewed as flag+width also yielding left justification.

Henceforth, we'll limit nesting to 100 with subsequent
children shown as " +  ", not the usual " `- " prefix.

References(s):
https://bugzilla.redhat.com/show_bug.cgi?id=1153642
http://www.freelists.org/post/procps/Bug-in-the-forrest-view,6

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-10-27 17:18:47 +01:00
Jim Warner
b0767bd391 top: ensure previously saved rcfile honored completely
When startup defaults were changed users with existing
rcfiles would likely find their previous configuration
was not being honored in all respects. The disparities
involved Graphs modes and Summary/Task memory scaling.

This patch simply restores what was always intended as
the proper behavior for previously saved config files.

References(s):
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762928
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762947
. new startup defaults
commit 8ef6cd91fc

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-09-29 08:22:13 +10:00
Jaromir Capik
00ec244114 docs: adding latest man translations 2014-09-23 13:40:36 +02:00
Yuri Chornoivan
6a5cf7aa77 docs: Fix typos in slabtop.1, sysctl.8 and uptime.1 2014-09-16 19:35:28 +02:00
Jaromir Capik
0bc60e5c27 build-sys: removing translated mans from Makefile.am
The previous commit didn't work like expected.
It's better to call 'make translate-mans'
manually prior calling 'make dist'.
2014-09-15 19:55:13 +02:00
Jaromir Capik
d6b8818238 docs: Committing new translations 2014-09-15 19:04:47 +02:00
Jaromir Capik
7e6ac6c868 build-sys: adding translated mans to dist 2014-09-15 18:57:40 +02:00
Yuri Chornoivan
955a003a2b docs: Fix typos in sysctl.8 and sysctl.conf.5 2014-09-15 16:24:59 +02:00
Jaromir Capik
d63ef52995 configure.ac: re-enabling the ALL_LINGUAS related checks 2014-09-15 15:30:08 +02:00
Craig Small
515ef90b93 Add translated mans to tarball
The source tarball now includes translated man pages and the
man-po po files.

Signed-off-by: Craig Small <csmall@enc.com.au>
2014-09-12 23:04:33 +10:00
Jaromir Capik
05b42b0f3c watch: typo in man (closign->closing) 2014-09-12 14:22:48 +02:00
Craig Small
0bcfc19a08 Merge remote-tracking branch 'refs/remotes/origin/master' 2014-09-10 21:21:26 +10:00
Craig Small
6cd03d506a man pot files added to dist
The dist tarball was missing the man-po/*.pot files. This change adds
them to the extra_dist target so they are in the distribution tarball.
2014-09-10 21:19:24 +10:00
Jaromir Capik
3477439278 3.3.10 API 2014-09-09 18:35:44 +02:00
Jaromir Capik
60660219b8 NEWS: adding enhanced ANSI support in watch 2014-09-09 18:13:23 +02:00
Jaromir Capik
eae9b671c0 watch: avoid ansi manipulations in non-ansi mode 2014-09-08 18:28:08 +02:00
Jaromir Capik
578cce6730 watch: fixing uninitialized variable 2014-09-08 18:24:28 +02:00
Jaromir Capik
e428a27af9 watch: fixing default color handling
Previously the default background color was expected
to be always black and the default foreground color
was expected to be always white. This commit extends
the group of color pairs with pairs containing default
colors.
2014-09-08 15:50:24 +02:00
Jaromir Capik
0160bdb559 watch: fixing future italic support 2014-09-06 10:54:34 +02:00
Jaromir Capik
b3e36c552b watch: enhancing ANSI color & style support
This commit adds support for background colors
and additional ANSI styles (faint, italic,
underlined, blinking, inversed).
2014-09-06 10:52:38 +02:00
Eero Häkkinen
0f649e2cd2 pgrep: avoid SEGV when lightweight and list-full options are used together
do not segfault
2014-09-06 00:35:16 +03:00
Craig Small
a0561fb4eb Add french and polish translation 2014-09-04 21:22:20 +10:00
Mike Frysinger
dd979a83b0 ignore config.cache
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-08-28 19:16:00 +02:00
Jaromir Capik
cbd8cf7829 sysctl: finalizing the GLOB_* flags check
This commit properly resolves the merge conflict
caused by the following two commits:
fb6d4e6cb4
f8128568d6
2014-08-28 15:48:29 +02:00
Michael Forney
fb6d4e6cb4 Support libc's without GLOB_TILDE
GLOB_TILDE is a GNU extension and may not be present on all systems.

Note (jcapik): The original patch from Michael Forney didn't
apply cleanly due to my recent addition of the GLOB_BRACE flag
in the list of flags. I had to edit the patch to make it apply,
but that produces an inconsistent state. It's gonna be fixed
in the next commit.
2014-08-28 15:07:01 +02:00
Michael Forney
007c438148 Also emulate error_at_line if not present 2014-08-28 13:54:24 +02:00
Michael Forney
d6a3a3d97e Handle 'none required' result from AC_SEARCH_LIBS 2014-08-28 13:39:22 +02:00
Jim Brown IV
2f975ba49d tload: fix lockup
It looks like an off by one error was added to tload a couple years
ago while removing goto statements.  This causes tload to go into
an endless loop when the load is just under a scale change integer.
eg: .99, 1.99, 3.99, 7.99

to reproduce you can add, just under the loadavg at line 170 in tload.c:
av[0] = 1.99;

or get the load to that level separately.

The patch below makes the code more like the original, but without the
goto statements.  This can also be fixed by just changing line 183 in
tload.c from "if (0 < row)" -> "if (0 <= row)".
2014-08-27 18:59:27 +02:00
Fredrik Fornwall
00279d692a Use <dirent.h> instead of <sys/dir.h>
Using <dirent.h> and struct dirent instead of <sys/dir.h> and struct direct
is preferred and works on Android which lacks sys/dir.h.

See:
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
2014-08-26 16:01:57 +02:00
Jaromir Capik
5d818a7a6d library: fixing stdio.h include position in nsutils.c
The previous commit removes the stdio_ext.h header,
but the ns_read function calls snprintf that needs
stdio.h and therefore moving the stdio.h include
from the bottom test program to the top line.
2014-08-26 15:24:55 +02:00
Fredrik Fornwall
41f7ff3ea8 library: remove unused includes in nsutils.c
The <stdio_ext.h> include breaks building on platforms without that header and is unused in nsutils.c.

Also remove unused but harmless <error.h> include.
2014-08-26 15:24:34 +02:00
Jaromir Capik
29b27fb282 watch: fixing uninitialized endptr in the previous commit
And increasing the ANSI buffer size from 10 to 100.
2014-08-20 19:14:13 +02:00
Sean Silva
469cac00ff watch: Fix handling of ANSI color escapes for -c
The previous code assumed that there would be 1 or 2 attributes to
apply. In fact, there can in general be any number (but typically
between 1 and 3). This commit generalizes the existing code to read
arbitrarily many attributes from the escape sequence.
2014-08-20 19:13:20 +02:00
Jaromir Capik
c9908b5971 free: fixing the layout broken with the -w introduction
For some reason I thought the columns are left justified
and consequently modified the header incorrectly when
implementing the -w/--wide feature.
With this commit the column width was increased by 1
so that the default layout is 79 characters wide
and allows to display 11 digits per column.
2014-08-20 13:21:22 +02:00
Beni Cherniavsky-Paskin
b4951bfea3 Add -a/--list-full to --help output. 2014-08-19 21:05:30 +02:00
Adam Sampson
1d212457f2 pmap: avoid depending on an uninitialised value.
It's possible for the first entry that this reads from /proc/*/smaps to
start with a map_desc-less line like this:

7fa71b77d000-7fa71c288000 rw-p 00000000 00:00 0

in which case sscanf will only read up to inode, and it won't set c; the
code below would then incorrectly discard the next ("Size:") line.

(With GCC 4.9.0, this bug causes the "pmap extra extended output" test
to fail for me.)
2014-08-19 18:59:28 +02:00
Craig Small
12f13f9fc2 Update free testsuite
free got a makeover to suit the newer kernel memory management.
This commit updates the tests to follow the new output for free

Signed-off-by: Craig Small <csmall@enc.com.au>
2014-08-19 22:43:33 +10:00
Jim Warner
8adf4acc03 top: final tweak to recent changes for new graph modes
Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-08-11 16:39:51 +02:00
Jim Warner
fd71717b9b NEWS: add a few more for the release 3.3.10 change log
Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-08-08 22:14:21 +02:00
Jim Warner
e92b692932 top: swat a potential buglet affecting new graph modes
This patch will cure a potential aberration associated
with a terminal's size (SIGWINCH) and top's new graphs
modes. The symptoms were a dangling tilde (~) plus the
potential loss of a graph's right-most visual content.

The condition was only apparent when a %Cpu approached
100% usage. Also the apparent loss of content affected
the 'block' graph only. With 'bar' graphs, that affect
became the loss of proper right-most bar graph colors.

The cause was determined to be a combination of: 1) an
unnecessary snprintf precision specification; and 2) a
rounding quirk for any graphs which displayed distinct
types of information (as for user/syst, used/unavail).
These could then combine to produce an extra bar/block
which, in turn, resulted in the truncation of a pseudo
termcap attribute used by the show_special() function.

What was originally interpreted as an intractable race
condition turns out to be just a self inflicted wound.

Reference(s):
http://www.freelists.org/post/procps/top-Possible-bug-in-the-graphs,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-08-08 22:14:21 +02:00
Jim Warner
bcbc3c5a02 misc: result after checking all files for misspellings
Reference(s):
https://github.com/lyda/misspell-check.git

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-08-08 22:14:21 +02:00
Fredrik Fornwall
dfe1f7d104 top: replace <values.h> with <limits.h> plus <float.h>
This fixes a compilation problem on Android which lacks values.h.

Reference(s):
https://gitorious.org/procps/procps/merge_requests/26

Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-08-08 22:14:21 +02:00
Jaromir Capik
2538b5ac03 library: increasing meminfo()/namebuf size from 16 to 32 2014-08-05 19:15:03 +02:00
Jaromir Capik
51cd57259a docs: free.1 now follows the latest used/cache changes 2014-07-31 16:46:54 +02:00
Jaromir Capik
f47001c9e9 free: remove -/+ buffers/cache
With introduction of the 'available' column
and with the latest changes in the 'used' evaluation
the -/+ buffers/cache line became redundant.
The first value duplicates the 'used'
column and the second value has a more accurate
brother called 'available'.
2014-07-31 15:10:42 +02:00
Jaromir Capik
5a0b972ca0 free: replace -a/--available with -w/--wide
This renames the --available switch
to the --wide switch and changes the default
layout so that it includes the 'available'
column and joins buffers and cache into
a common column called 'buff/cache'.
2014-07-31 15:10:42 +02:00
Jim Warner
5380ef9022 top: adapt global memory support to new library format
Signed-off-by: Jim Warner <james.warner@comcast.net>
2014-07-31 15:10:42 +02:00