Accepting request 459916 from openSUSE:Factory:zSystems
New fixes from IBM OBS-URL: https://build.opensuse.org/request/show/459916 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=2
This commit is contained in:
parent
e6c7f5a26e
commit
f7a512ba31
142
s390-tools-sles12sp3-dbginfo-Collect-docker-debug-data.patch
Normal file
142
s390-tools-sles12sp3-dbginfo-Collect-docker-debug-data.patch
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
Subject: [PATCH] [BZ 151594] dbginfo: Collect docker debug output.
|
||||||
|
From: Karsten Graul <kgraul@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
Description: dbginfo: Collect docker debug output.
|
||||||
|
Symptom: dbginfo.sh output does not contain docker debug output.
|
||||||
|
Problem: dbginfo.sh does not collect docker debug output.
|
||||||
|
Solution: Add invocation of docker debug commands to dbginfo.sh.
|
||||||
|
Reproduction: -
|
||||||
|
Upstream-ID: -
|
||||||
|
Problem-ID: 151594
|
||||||
|
|
||||||
|
Signed-off-by: Karsten Graul <kgraul@linux.vnet.ibm.com>
|
||||||
|
---
|
||||||
|
scripts/dbginfo.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||||
|
1 file changed, 54 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/scripts/dbginfo.sh
|
||||||
|
+++ b/scripts/dbginfo.sh
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
#
|
||||||
|
# dbginfo.sh - Tool to collect runtime, configuration, and trace information
|
||||||
|
#
|
||||||
|
-# Copyright IBM Corp. 2002, 2016
|
||||||
|
+# Copyright IBM Corp. 2002, 2017
|
||||||
|
#
|
||||||
|
|
||||||
|
# Switching to neutral locale
|
||||||
|
@@ -18,7 +18,7 @@ readonly SCRIPTNAME="${0##*/}"
|
||||||
|
print_version() {
|
||||||
|
cat <<EOF
|
||||||
|
${SCRIPTNAME}: Debug information script version %S390_TOOLS_VERSION%
|
||||||
|
-Copyright IBM Corp. 2002, 2016
|
||||||
|
+Copyright IBM Corp. 2002, 2017
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -177,11 +177,14 @@ readonly OUTPUT_FILE_OVS="${WORKPATH}ope
|
||||||
|
# File that includes the KVM domain xml file
|
||||||
|
readonly OUTPUT_FILE_XML="${WORKPATH}domain_xml"
|
||||||
|
|
||||||
|
+# File that includes the docker inspect output
|
||||||
|
+readonly OUTPUT_FILE_DOCKER="${WORKPATH}docker_inspect.out"
|
||||||
|
+
|
||||||
|
# Mount point of the debug file system
|
||||||
|
readonly MOUNT_POINT_DEBUGFS="/sys/kernel/debug"
|
||||||
|
|
||||||
|
# The amount of steps running the whole collections
|
||||||
|
-readonly COLLECTION_COUNT=10
|
||||||
|
+readonly COLLECTION_COUNT=11
|
||||||
|
|
||||||
|
# The kernel version (e.g. '2' from 2.6.32 or '3' from 3.2.1)
|
||||||
|
readonly KERNEL_VERSION=$(uname -r 2>/dev/null | cut -d'.' -f1)
|
||||||
|
@@ -301,6 +304,8 @@ LOGFILES="\
|
||||||
|
/var/log/yum.log\
|
||||||
|
/var/log/openvswitch/ovs-vswitchd.log\
|
||||||
|
/var/log/openvswitch/ovsdb-server.log\
|
||||||
|
+ /var/run/docker/libcontainerd/containerd/events.log\
|
||||||
|
+ /run/containerd/events.log\
|
||||||
|
"
|
||||||
|
|
||||||
|
########################################
|
||||||
|
@@ -351,6 +356,9 @@ CONFIGFILES="\
|
||||||
|
/etc/xinet.d\
|
||||||
|
/etc/*release\
|
||||||
|
$(find /lib/modules -name modules.dep 2>/dev/null)\
|
||||||
|
+ /etc/docker\
|
||||||
|
+ /usr/lib/systemd\
|
||||||
|
+ /etc/apparmor.d\
|
||||||
|
"
|
||||||
|
|
||||||
|
########################################
|
||||||
|
@@ -436,6 +444,16 @@ CMDS="uname -a\
|
||||||
|
:systemctl --all --no-pager show\
|
||||||
|
:systemctl --all --no-pager list-units\
|
||||||
|
:systemctl --all --no-pager list-unit-files\
|
||||||
|
+ :docker info\
|
||||||
|
+ :docker images\
|
||||||
|
+ :docker network ls\
|
||||||
|
+ :docker ps\
|
||||||
|
+ :docker ps -a\
|
||||||
|
+ :docker stats --no-stream\
|
||||||
|
+ :docker version\
|
||||||
|
+ :systemctl status docker.service\
|
||||||
|
+ :df /var/lib/docker\
|
||||||
|
+ :df --inodes /var/lib/docker\
|
||||||
|
"
|
||||||
|
|
||||||
|
########################################
|
||||||
|
@@ -767,13 +785,43 @@ collect_domain_xml() {
|
||||||
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
+collect_docker() {
|
||||||
|
+ local item_list
|
||||||
|
+ local item
|
||||||
|
+
|
||||||
|
+ # call docker inspect for all containers
|
||||||
|
+ item_list=$(docker ps -qa)
|
||||||
|
+ if test -n "${item_list}"; then
|
||||||
|
+ pr_syslog_stdout "10a of ${COLLECTION_COUNT}: Collecting docker container output"
|
||||||
|
+ for item in ${item_list}; do
|
||||||
|
+ call_run_command "docker inspect ${item}" "${OUTPUT_FILE_DOCKER}"
|
||||||
|
+ done
|
||||||
|
+ else
|
||||||
|
+ pr_syslog_stdout "10a of ${COLLECTION_COUNT}: Collecting docker container output skipped"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # call docker inspect for all networks
|
||||||
|
+ item_list=$(docker network ls -q)
|
||||||
|
+ if test -n "${item_list}"; then
|
||||||
|
+ pr_syslog_stdout "10b of ${COLLECTION_COUNT}: Collecting docker network output"
|
||||||
|
+ for item in ${item_list}; do
|
||||||
|
+ call_run_command "docker network inspect ${item}" "${OUTPUT_FILE_DOCKER}"
|
||||||
|
+ done
|
||||||
|
+ else
|
||||||
|
+ pr_syslog_stdout "10b of ${COLLECTION_COUNT}: Collecting docker network output skipped"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ pr_log_stdout " "
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+########################################
|
||||||
|
post_processing() {
|
||||||
|
local file_mtime
|
||||||
|
local file_mtime_epoche
|
||||||
|
local tmp_file
|
||||||
|
local file_name
|
||||||
|
|
||||||
|
- pr_syslog_stdout "10 of ${COLLECTION_COUNT}: Postprocessing"
|
||||||
|
+ pr_syslog_stdout "11 of ${COLLECTION_COUNT}: Postprocessing"
|
||||||
|
|
||||||
|
find "${WORKPATH}etc/libvirt/qemu/" -maxdepth 1 -name "*.xml" 2>/dev/null | while IFS= read -r file_name; do
|
||||||
|
file_mtime_epoche=$(stat --format=%Y "${file_name}")
|
||||||
|
@@ -1056,6 +1104,8 @@ collect_ovs
|
||||||
|
|
||||||
|
collect_domain_xml
|
||||||
|
|
||||||
|
+collect_docker
|
||||||
|
+
|
||||||
|
post_processing
|
||||||
|
|
||||||
|
create_package
|
@ -0,0 +1,65 @@
|
|||||||
|
Subject: [PATCH] [BZ 151416] mon_fsstatd: fix double free in error path and skip virtual fs
|
||||||
|
From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||||
|
|
||||||
|
Description: mon_fsstatd: fix double free in error path and skip virtual fs
|
||||||
|
Symptom: The daemon is stopped and the following messages can be found
|
||||||
|
in syslog: "statvfs error on /run/user/0: Permission denied"
|
||||||
|
and "double free or corruption (!prev)".
|
||||||
|
Problem: The error handling code for a failing statvfs() call erroneously
|
||||||
|
does an extra fclose(), conflicting with the later fclose().
|
||||||
|
Also, breaking out of the inner loop at this point doesn't make
|
||||||
|
sense, because there may be other mounted filesystems that would
|
||||||
|
be skipped.
|
||||||
|
The reason for the failing statvfs() (on /run/user/0) is a wrong
|
||||||
|
selinux context (when started via systemctl), and this error will
|
||||||
|
spam the syslog if we only fix the double free. Since /run/user/0
|
||||||
|
is a tmpfs, and mon_fsstatd is supposed to collect only physical
|
||||||
|
filesystem data, it is wrong to even try to access /run/user/0.
|
||||||
|
Solution: Remove the extra fclose(), replace the break with a continue,
|
||||||
|
and add tmpfs (and others) to the list of ignored virtual
|
||||||
|
filesystems.
|
||||||
|
Reproduction: Start mon_fsstatd via service/systemctl.
|
||||||
|
Upstream-ID: -
|
||||||
|
Problem-ID: 151416
|
||||||
|
|
||||||
|
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||||
|
---
|
||||||
|
mon_tools/mon_fsstatd.c | 19 +++++++++++++++++--
|
||||||
|
1 file changed, 17 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/mon_tools/mon_fsstatd.c
|
||||||
|
+++ b/mon_tools/mon_fsstatd.c
|
||||||
|
@@ -323,16 +323,31 @@ static int fsstatd_do_work(void)
|
||||||
|
strncmp(ent->mnt_type, "none", 4) == 0 ||
|
||||||
|
strncmp(ent->mnt_type, "proc", 4) == 0 ||
|
||||||
|
strncmp(ent->mnt_type, "subfs", 5) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "nfsd", 4) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "tmpfs", 5) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "sysfs", 5) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "pstore", 6) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "cgroup", 6) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "mqueue", 6) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "devpts", 6) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "debugfs", 7) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "devtmpfs", 8) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "configfs", 8) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "selinuxfs", 9) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "hugetlbfs", 9) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "securityfs", 10) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "rpc_pipefs", 10) == 0 ||
|
||||||
|
+ strncmp(ent->mnt_type, "binfmt_misc", 11) == 0 ||
|
||||||
|
strncmp(ent->mnt_type, "ignore", 6) == 0)) {
|
||||||
|
ent = getmntent(mnttab);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
result = statvfs(ent->mnt_dir, &buf);
|
||||||
|
if (result != 0) {
|
||||||
|
- fclose(mnttab);
|
||||||
|
syslog(LOG_ERR, "statvfs error on %s: %s\n",
|
||||||
|
ent->mnt_dir, strerror(errno));
|
||||||
|
- break;
|
||||||
|
+ ent = getmntent(mnttab);
|
||||||
|
+ continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf.f_blocks > 0)
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 22 20:29:57 UTC 2017 - mpost@suse.com
|
||||||
|
|
||||||
|
- Added the following patches (bsc#1026474)
|
||||||
|
- s390-tools-sles12sp3-mon_fsstatd-fix-double-free-in-error-path-and-skip-virtual-fs.patch
|
||||||
|
- s390-tools-sles12sp3-dbginfo-Collect-docker-debug-data.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 20 17:05:45 UTC 2017 - mpost@suse.com
|
Mon Feb 20 17:05:45 UTC 2017 - mpost@suse.com
|
||||||
|
|
||||||
|
@ -130,6 +130,8 @@ Patch27: s390-tools-sles12sp3-dasdfmt-08-Make-progress-output-reusable-an
|
|||||||
Patch28: s390-tools-sles12sp3-dasdfmt-09-Add-command-line-argument-check.patch
|
Patch28: s390-tools-sles12sp3-dasdfmt-09-Add-command-line-argument-check.patch
|
||||||
Patch29: s390-tools-sles12sp3-dasdfmt-10-Add-expand-format-mode.patch
|
Patch29: s390-tools-sles12sp3-dasdfmt-10-Add-expand-format-mode.patch
|
||||||
Patch30: s390-tools-sles12sp3-util_proc-fix-memory-allocation-error-messages.patch
|
Patch30: s390-tools-sles12sp3-util_proc-fix-memory-allocation-error-messages.patch
|
||||||
|
Patch31: s390-tools-sles12sp3-mon_fsstatd-fix-double-free-in-error-path-and-skip-virtual-fs.patch
|
||||||
|
Patch32: s390-tools-sles12sp3-dbginfo-Collect-docker-debug-data.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
ExclusiveArch: s390 s390x
|
ExclusiveArch: s390 s390x
|
||||||
@ -216,6 +218,8 @@ to list files and directories.
|
|||||||
%patch28 -p1
|
%patch28 -p1
|
||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
%patch30 -p1
|
||||||
|
%patch31 -p1
|
||||||
|
%patch32 -p1
|
||||||
|
|
||||||
cp -vi %{S:22} CAUTION
|
cp -vi %{S:22} CAUTION
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user