| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
to prevent uncaught exception on py3
also dont import already imported traceback class
Resolves: #1349
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
I found a permission error when trying to copy /sys/fs/pstore when
running on LXD containers. Adding a permission check first allows
it to skip folders it can't list.
Resolves: #1348
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1346
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1343
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1342
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1341
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
| |
Fixing a regression caused by 8e69d36 .
Resolves: #1337
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Moving also building of the command from Archive to Plugin class.
Closes: #1196
Resolves: #1338
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
In some cases, we need to determine what package provides given
binary. This auxiliary function implements it - so far it works
for and will be used by archive methods.
Related to: #1196
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes an issue where sosreport would not run due to an unset number of
threads if 'sosreport' was run bare, with no options. Any option
(threads or otherwise) would mask this problem due to how the default
threads value was set by the parser. Now sosreport can be run without
any options and run normally, with the concurrency provided by the
threads.
Additionally, changes the status line printed during plugin execution to
be of a fixed length, so that output lines are not mangled when the
status line is updated, rather than a new line being printed (such as
what happens when using --batch).
Resolves: #1336
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Closes: #1334
Resolves: #1335
Signed-off-by: Amit Ghadge <amitg.b14@gmail.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new plugin for Microsoft SQL Server on Linux.
Collect log files.
Collect journal logs.
Collect keytab file info if AD auth is configured.
Resolves: #1326
Signed-off-by: Takayoshi Tanaka <tatanaka@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since OCP 3.6+, there are some DNS config under /etc/origin/node/ such
as `node-dnsmasq.conf` and `resolv.conf`. Although current sosreport
does not gather them, these are important for troubleshooting of DNS
issues.
This patch updates origin.py to collect {resolv,node-dnsmasq}.conf
under /etc/origin/node/.
Resolves: #1311
Signed-off-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Do the copy in one call with variables, so it's more efficient.
2) Collect the config tarball
It'll be very useful to collect the config tarball which containers
TripleO Heat Templates used to deploy the undercloud and the Ansible
playbooks generated by config-download as well.
Both of them are archived and compressed in
/home/stack/undercloud-install-*.tar.bzip2 files everytime
install/upgrade commands are run.
3) Collect ephemeral Heat logs
/var/log/heat-launcher is a new directory that contains the
heat-installer sqlite, logs and configuration.
The content is small because it's only used once and it's ephemeral
(purged everytime an operator install or upgrade an undercloud).
However, collecting these files will be useful to help customers.
4) Collect new logfile
When containerizing the undercloud, we're moving install-undercloud.log
into $HOME which makes it more accessible for the users, while we're
removing instack(-undercloud) bits over time.
This patch add $HOME/install-undercloud.log file and document why we're
doing this. Note that we still collect old file for previous releases.
Resolves: #1279
Signed-off-by: Emilien Macchi <emilien@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since plugins are now run concurrently the Archive class must be
re-entrant: different plugins may attempt to create the same
paths in the archive, and since they are executing in parallel
and with no locking, there exists a TOCTOU race between the use
of os.path.{exists,isdir, etc.}() and the subsequent creation of
a new path.
Address this by implementing a simple monitor-style locking scheme
for the FileCacheArchive class. A `_path_lock` member is added to
the class and this must be held across any operation that modifies
the namespace of the archive (including file, directory, symlink,
and special node creation).
Additionally, the `_check_path()` Archive method (which checks
for the existence of path components up to the basename of the
file, creating directories as required) is extended to also carry
out a test for the existence of the path, and if the path does
exist, that the object is of the expected type. A mismatch in the
object type generates a ValueError with an appropriate string
description of the problem.
Benchmarking shows a consistent small improvement with the patch:
this is a result of reduced redundant copy operations that the
previous archive structure allowed (since duplicate operations
are now aborted as soon as the _path_lock is acquired).
Resolves: #1340
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Configuration files can exist in three different locations
with the precedence from most important to least as follows:
/run/netplan/*.yaml
/etc/netplan/*.yaml
/lib/netplan/*.yaml
Alphabetically later files, no matter what directory in, will
amend keys if the key does not already exist and override previous keys if they do.
Resolves: #1318
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add ubuntu-advantage status which is installed by default on Ubuntu and
shows when various UA items are enabled - esm, fips, and livepatch.
Switch ubuntu-support-status to always --show-all. It takes exactly
the same amount of time to run (in both cases it's relatively slow at
3 seconds), and only adds 30k uncompressed/12k compressed.
Add hwe-support-status to give more details about Ubuntu Hardware
enablement if present.
Resolves: #1330
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
plugins added:
- omnipath_manager for OPA fabric subnet manager
- omnipath_client for management/head node of the cluster
Resolves: #1291
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've noted an uptick of users recompressing sosreports to get a
better compression rate for uploading over slow links. My tests
indicate that -2 is a better default and should remove any benefit
of compressing again.
In tested cases -2 does not cause any significant CPU increase
and always has shown an improvment - sometimes substancial. The
worst was 3seconds more for a 15MB savings. I would generally
expect to see similar percentage savings as sosreports get bigger.
-3 and higher were evaluated but had diminshing returns that
didn't seem worth it.
Tests results:
NVMe drive
xz -a --batch
-1 5.9M 30.766s
-2 5.7M 30.673s
-3 5.6M 30.101s
-4 5.5M 35.882s
bz2
bz2 -a --batch
-1 11M 36.675s
-2 8.3M 38.792s
xz -a --all-logs --batch
-1 87M 1m8.994s
-2 72M 1m11.926s
-3 69M 1m18.210s
-4 70M 2m33.930s
Old hard drive
-a --batch
-1 5.3M 14.935s
-2 5.2M 15.611s
-a --batch --all-logs
-1 35M 38.881s
-2 26M 38.337s
Resolves: #1307
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a check for the /tmp directory for permissions and selinux
context. If either of these are incorrect, the system in question can
exhibit strange behavior and otherwise be difficult for support teams to
detect.
On systems where SELinux is disabled, the permission check is still
relevant and the command still produces useful output with the -Z
option.
Resolves: #1327
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Adds collection of the previous day's worth of events handled by the
daemon, a summarized output of storage needs, and a listing of volumes
known to the daemon.
Resolves: #1328
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
An early change to the docker plugin corrected the Debian/Ubuntu docker
command to be "docker" instead of "docker.io". This means that the
docker commands run by the plugin are not going to be different across
distributions. As such, the way the commands are built by the plugin
have been simplified to ease readability.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
Don't compute archive's checksum and print a message to stdout rather.
Resolves: #1329
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
(Also) in case of not fatal FS error, print some valuable message
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
Prevents raising exception when the dir has been removed.
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
| |
Closes: #1306
Resolves: #1313
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes the nis, nfsganesha, and os_net_config plugins package lists to
use a 1-tuple instead of a string that would break package verification
for those plugins.
Resolves: #1315
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Updates the block plugin to use the new add_udev_info() method, once
with an attribute walk and once without.
Resolves: #1319
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new plugin collects information related to the watchdog service,
including configuration, custom executables for test-binary and
repair-binary, and stdout/stderr log files.
This will be helpful to support teams seeking to understand why an
unexpected reboot occurred or, conversely, why a reboot did not
occur as expected.
Resolves: #1305
Signed-off-by: Reid Wahl <nwahl@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is possible to load kernel modules during boot in a static list
as mentioned under /etc/modules-load.d/*.conf. These files are used
by systemd-modules-load.service. Collect this information using
systemd plugin.
Resolves: #1303
Signed-off-by: Akhil John <ajohn@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Opal-prd is the Processor Runtime Diagnostics daemon on Power systems
running OPAL firmware. Capture this log file with sosreport.
Resolves: #1295
Signed-off-by: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some instances, the regex match in all_pkgs_by_name_regex() was
returning an empty list when no match was made. This in turn caused sos
to run an empty verify command, e.g. 'rpm -V '.
By filtering the list of packages to verify, we can remove these empty
lists and avoid the empty verify command.
Closes: #1304
Resolves: #1314
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, if sos was run in an environment where '/lib/modules/*' did
not exist, the kernel plugin would pass an empty extra_mod_paths list to
'find -ls', which would in turn cause sos to execute 'find -ls' on the
entire filesystem.
While this situation may seem rare, this is a possiblity whenever sos is
run in a container that does not have the proper environment variable
set that indicates to the active policy that sos is in fact in a
container. On top of generating a sosreport with little to useful
information in this case, the generated sosreport could potentially be
very large due to the collection of a blanket 'find -ls'.
This prevents this from occuring, by not running 'find -ls' if the
extra_mod_paths list is empty.
Resolves: #1288
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added "systemd-analyze dump" which is the complete systemd picture,
containing dependencies, start/stop timestamps, aliases, etc.
- Added "systemd-analyze plot" which provides a convenient visual way to
understand dependencies and startup times.
- Added collect of "/run/systemd/*" which contains many useful data,
such as generated units, current sessions on system (useful to debug
session leaks) and transient units.
Resolves: #1285
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Fixes: #1283
Resolves: #1284
Signed-off-by: Dan Horák <dan@danny.cz>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Collects the paths to the libraries cached by "ldconfig". This is useful
when a customer replaced a standard library by its own or when he added
his own libraries to the standard paths or through symbolic links.
Resolves: #1282
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1280
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Many NFS (and other related programs) options can now be set
through the config file /etc/nfs.conf.
Collect this from the 'nfs' plugin.
Resolves: #1278
Signed-off-by: Pierguido Lambri <plambri@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I see below errors when generating docs using `make`. Decided to
cleanup a bit. The docstring look better than previous and no more
errors when generating docs.
```
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:5: ERROR: Unexpected indentation.
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:6: WARNING: Block quote ends without a blank line; unexpected unindent.
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:13: WARNING: Definition list ends without a blank line; unexpected unindent.
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:15: ERROR: Unexpected indentation.
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:16: WARNING: Block quote ends without a blank line; unexpected unindent.
/home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:18: WARNING: Definition list ends without a blank line; unexpected unindent.
```
I tried to keep the changes in Sphinx format. Not all functions are
changed in this patch but the one generating errors.
Let me know if anything else needs cleanup in `sos/sos/plugins/__init__.py`
Signed-off-by: Sachin Patil <psachin@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes sos to run plugins concurrently. By default sos will now use
four (4) threads to run plugins, allowing for faster overall execution
of sosreport. The number of threads can be changed using the --threads
commandline option.
Plugins now also have a timeout applied to them as a whole to avoid
situations where sosreport appears to be hung. If a plugin exceeds the
timeout threshold, the plugin will be terminated immediately. - this
allows sos to not only continue running normally, but should still allow
for collection of commands run by the plugin up until it was terminated.
The timeout is plugin controlled, and defaults to 300 seconds if not
set.
Note that for python2 environments, this adds a dependency on
python-futures. The futures module is present in the standard library
for python3 environments.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, any command output generated from plugins from
add_cmd_output and add_journal would be collected in full in memory. For
example, if a journal was 4GB in size, then 4GB would be read into
memory and subsequently written to the final sos archive. This lead to
not only potentially large archives, but in some cases failure to
collect data or produce an archive due to memory constraints on the
system.
This patch adds the ability to use a sizelimit option in both
add_cmd_output and add_journal. This will limit the collected output
from commands or journals to the given limit, both what is read into
memory and what is written to the final archive. If not given,
sizelimit will default to --log-size. For journal collection, if no
sizelimit is given then the larger of either --log-size or 100mb is
used.
Resolves: #1120
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The _format_list() function handles formatting lists as comma-
separated strings, including line wrapping and indentation to
match an outer indentation level.
Add a new 'sep' parameter to allow the list to be separated by
an arbitrary character sequence.
This allows space-separated command line option lists to be
printed by --list-presets.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Rather than testing for the presence of /etc/redhat-release and
the absence of /etc/fedora-release, open /etc/os-release and check
for the presence of the RHEL release string in the NAME field.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
'make po' complains about this file being missing: add it, with
the same translations as en_GB.po, and set the locale to 'en'.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 7bc90f618f0549279544d26effae2e5197d85e2b ("[logs] collect
journalctl verbosed logs with --all-logs only") did not suppress
the journalctl verbosed logs by default. Let's rework it.
Related: #1225
Resolves: #1310
Signed-off-by: Kazuhito Hagio <k-hagio@ab.jp.nec.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|