From 28876fc2adb22aea20f8904155457b5c92b5d6f3 Mon Sep 17 00:00:00 2001 From: eulerstorage Date: Sun, 29 Dec 2019 15:13:59 +0800 Subject: [PATCH] sync bugfix --- ...se-label_read-in-lvmetad_pvscan_sing.patch | 27 +++++++++++++++ 6039-bcache-Fix-memory-leak.patch | 24 +++++++++++++ 6040-cov-release-iterator-on-error-path.patch | 29 ++++++++++++++++ 6041-cov-check-result-of-dev_read_bytes.patch | 31 +++++++++++++++++ ...-cov-check-for-socket_path-being-set.patch | 27 +++++++++++++++ 6043-cov-clearer-condition-check.patch | 31 +++++++++++++++++ ...44-lvmetad-fix-sync-cache-to-lvmetad.patch | 0 ...elect-to-avoid-condition-checking-ra.patch | 0 ...-threads-are-reaped-before-checking-.patch | 0 ...6047-lvmetad-fix-timeout-on-shutdown.patch | 0 ...eck-for-no-dev-when-dropping-aliases.patch | 0 ... 6049-cov-missing-checks-of-syscalls.patch | 0 ...0-cov-ensure-read_ahead-is-available.patch | 0 ...lvmcache-free-resource-on-error-path.patch | 0 ...daemons-check-for-non-zero-thread_id.patch | 0 ...n-remove-extra-label-scan-and-read-f.patch | 0 lvm2.spec | 34 +++++++++++++------ 17 files changed, 192 insertions(+), 11 deletions(-) create mode 100644 6038-lvm2-revert-to-use-label_read-in-lvmetad_pvscan_sing.patch create mode 100644 6039-bcache-Fix-memory-leak.patch create mode 100644 6040-cov-release-iterator-on-error-path.patch create mode 100644 6041-cov-check-result-of-dev_read_bytes.patch create mode 100644 6042-cov-check-for-socket_path-being-set.patch create mode 100644 6043-cov-clearer-condition-check.patch rename 6038-lvmetad-fix-sync-cache-to-lvmetad.patch => 6044-lvmetad-fix-sync-cache-to-lvmetad.patch (100%) rename 6039-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch => 6045-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch (100%) rename 6040-libdaemon-ensure-threads-are-reaped-before-checking-.patch => 6046-libdaemon-ensure-threads-are-reaped-before-checking-.patch (100%) rename 6041-lvmetad-fix-timeout-on-shutdown.patch => 6047-lvmetad-fix-timeout-on-shutdown.patch (100%) rename 6042-devs-check-for-no-dev-when-dropping-aliases.patch => 6048-devs-check-for-no-dev-when-dropping-aliases.patch (100%) rename 6043-cov-missing-checks-of-syscalls.patch => 6049-cov-missing-checks-of-syscalls.patch (100%) rename 6044-cov-ensure-read_ahead-is-available.patch => 6050-cov-ensure-read_ahead-is-available.patch (100%) rename 6045-lvmcache-free-resource-on-error-path.patch => 6051-lvmcache-free-resource-on-error-path.patch (100%) rename 6046-daemons-check-for-non-zero-thread_id.patch => 6052-daemons-check-for-non-zero-thread_id.patch (100%) rename 6047-revert-label_scan-remove-extra-label-scan-and-read-f.patch => 6053-revert-label_scan-remove-extra-label-scan-and-read-f.patch (100%) diff --git a/6038-lvm2-revert-to-use-label_read-in-lvmetad_pvscan_sing.patch b/6038-lvm2-revert-to-use-label_read-in-lvmetad_pvscan_sing.patch new file mode 100644 index 0000000..837bde3 --- /dev/null +++ b/6038-lvm2-revert-to-use-label_read-in-lvmetad_pvscan_sing.patch @@ -0,0 +1,27 @@ +From 4e7c9c0e627d9814f0502488fb830fc47b6a71e0 Mon Sep 17 00:00:00 2001 +Date: Wed, 11 Sep 2019 01:35:09 +0800 +Subject: [PATCH] lvm2: revert to use label_read in lvmetad_pvscan_single + +reason: In e3e5beec74ac0037917f5e9a2693c6ccb16debac of stable-2.02 +branch, it reduce scan disk.It may lead to the metadate cache +outdate when send pv_found to lvmetad.Revert it by calling +label_read in lvmetad_pvscan_single +--- + lib/cache/lvmetad.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c +index 4b1b095..80aee66 100644 +--- a/lib/cache/lvmetad.c ++++ b/lib/cache/lvmetad.c +@@ -2256,6 +2256,7 @@ int lvmetad_pvscan_single(struct cmd_context *cmd, struct device *dev, + return 1; + } + ++ label_read(dev); + if (!(info = lvmcache_info_from_pvid(dev->pvid, dev, 0))) { + log_print_unless_silent("No PV info found on %s for PVID %s.", dev_name(dev), dev->pvid); + if (!lvmetad_pv_gone_by_dev(dev)) +-- +2.19.1 + diff --git a/6039-bcache-Fix-memory-leak.patch b/6039-bcache-Fix-memory-leak.patch new file mode 100644 index 0000000..4e4848d --- /dev/null +++ b/6039-bcache-Fix-memory-leak.patch @@ -0,0 +1,24 @@ +From b79f1e176f013167ca9798efb55eaf048d64e042 Mon Sep 17 00:00:00 2001 +From: Marian Csontos +Date: Thu, 4 Apr 2019 10:18:07 +0200 +Subject: [PATCH] bcache: Fix memory leak + +--- + lib/device/bcache.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/device/bcache.c b/lib/device/bcache.c +index 7384a32..f64931f 100644 +--- a/lib/device/bcache.c ++++ b/lib/device/bcache.c +@@ -411,6 +411,7 @@ static bool _sync_issue(struct io_engine *ioe, enum dir d, int fd, + (unsigned long long)offset, + (unsigned long long)nbytes, + (unsigned long long)_last_byte_offset); ++ free(io); + return false; + } + +-- +1.8.3.1 + diff --git a/6040-cov-release-iterator-on-error-path.patch b/6040-cov-release-iterator-on-error-path.patch new file mode 100644 index 0000000..b565629 --- /dev/null +++ b/6040-cov-release-iterator-on-error-path.patch @@ -0,0 +1,29 @@ +From 09aafb61e31c3781530795057c87afaeb53a2bd4 Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Tue, 25 Jun 2019 15:37:01 +0200 +Subject: [PATCH] cov: release iterator on error path + +--- + lib/label/label.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/label/label.c b/lib/label/label.c +index 4f8e135..9a3f8df 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -866,8 +866,11 @@ int label_scan(struct cmd_context *cmd) + } + + while ((dev = dev_iter_get(iter))) { +- if (!(devl = dm_zalloc(sizeof(*devl)))) ++ if (!(devl = dm_zalloc(sizeof(*devl)))) { ++ log_error("Failed to allocated device list."); ++ dev_iter_destroy(iter); + return 0; ++ } + devl->dev = dev; + dm_list_add(&all_devs, &devl->list); + +-- +1.8.3.1 + diff --git a/6041-cov-check-result-of-dev_read_bytes.patch b/6041-cov-check-result-of-dev_read_bytes.patch new file mode 100644 index 0000000..1f08420 --- /dev/null +++ b/6041-cov-check-result-of-dev_read_bytes.patch @@ -0,0 +1,31 @@ +From 862899cc88e1697211d478de58b2ddc0eaec9cd9 Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Tue, 25 Jun 2019 14:50:05 +0200 +Subject: [PATCH] cov: check result of dev_read_bytes + +--- + lib/format_text/format-text.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c +index 1a6c3a3..9b08e14 100644 +--- a/lib/format_text/format-text.c ++++ b/lib/format_text/format-text.c +@@ -1224,8 +1224,12 @@ int read_metadata_location_summary(const struct format_type *fmt, + } + + memset(namebuf, 0, sizeof(namebuf)); +- if (!dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, namebuf)) +- stack; ++ if (!dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, namebuf)) { ++ log_error("Can't read metadata location on %s at %llu.", ++ dev_name(dev_area->dev), ++ (unsigned long long)(dev_area->start + rlocn->offset)); ++ return 0; ++ } + while (namebuf[len] && !isspace(namebuf[len]) && namebuf[len] != '{' && + len < (NAME_LEN - 1)) + len++; +-- +2.19.1 + diff --git a/6042-cov-check-for-socket_path-being-set.patch b/6042-cov-check-for-socket_path-being-set.patch new file mode 100644 index 0000000..cf7ac3b --- /dev/null +++ b/6042-cov-check-for-socket_path-being-set.patch @@ -0,0 +1,27 @@ +From 5cf1c61152bfd5f1eef7f49509a877090f4cc26f Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Tue, 25 Jun 2019 15:11:05 +0200 +Subject: [PATCH] cov: check for socket_path being set + +As we check for existince on entering path +let's ensure it's there also on exit path. +--- + libdaemon/server/daemon-server.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c +index 79b54d0..bc58f7b 100644 +--- a/libdaemon/server/daemon-server.c ++++ b/libdaemon/server/daemon-server.c +@@ -693,7 +693,7 @@ void daemon_start(daemon_state s) + out: + /* If activated by systemd, do not unlink the socket - systemd takes care of that! */ + if (!_systemd_activation && s.socket_fd >= 0) +- if (unlink(s.socket_path)) ++ if (s.socket_path && unlink(s.socket_path)) + perror("unlink error"); + + if (s.socket_fd >= 0) +-- +1.8.3.1 + diff --git a/6043-cov-clearer-condition-check.patch b/6043-cov-clearer-condition-check.patch new file mode 100644 index 0000000..81c3c09 --- /dev/null +++ b/6043-cov-clearer-condition-check.patch @@ -0,0 +1,31 @@ +From 8bea252a636ff0de2266c1ce760b3a6047f0ff2f Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Tue, 25 Jun 2019 15:08:10 +0200 +Subject: [PATCH] cov: clearer condition check + +Make the code more obvious. +--- + lib/activate/activate.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/lib/activate/activate.c b/lib/activate/activate.c +index b3b8a25..561a965 100644 +--- a/lib/activate/activate.c ++++ b/lib/activate/activate.c +@@ -2478,7 +2478,12 @@ static int _lv_resume(struct cmd_context *cmd, const char *lvid_s, + * If vg_commit() did not happen, lvmcache_get_saved_vg_latest + * returns the old metadata which we use to resume LVs. + */ +- if (!lv && lvid_s) { ++ if (!lv) { ++ if (!lvid_s) { ++ log_error(INTERNAL_ERROR "Requested resume of unindentified resource!"); ++ return 0; ++ } ++ + lvid = (const union lvid *) lvid_s; + vgid = (const char *)lvid->id[0].uuid; + +-- +1.8.3.1 + diff --git a/6038-lvmetad-fix-sync-cache-to-lvmetad.patch b/6044-lvmetad-fix-sync-cache-to-lvmetad.patch similarity index 100% rename from 6038-lvmetad-fix-sync-cache-to-lvmetad.patch rename to 6044-lvmetad-fix-sync-cache-to-lvmetad.patch diff --git a/6039-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch b/6045-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch similarity index 100% rename from 6039-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch rename to 6045-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch diff --git a/6040-libdaemon-ensure-threads-are-reaped-before-checking-.patch b/6046-libdaemon-ensure-threads-are-reaped-before-checking-.patch similarity index 100% rename from 6040-libdaemon-ensure-threads-are-reaped-before-checking-.patch rename to 6046-libdaemon-ensure-threads-are-reaped-before-checking-.patch diff --git a/6041-lvmetad-fix-timeout-on-shutdown.patch b/6047-lvmetad-fix-timeout-on-shutdown.patch similarity index 100% rename from 6041-lvmetad-fix-timeout-on-shutdown.patch rename to 6047-lvmetad-fix-timeout-on-shutdown.patch diff --git a/6042-devs-check-for-no-dev-when-dropping-aliases.patch b/6048-devs-check-for-no-dev-when-dropping-aliases.patch similarity index 100% rename from 6042-devs-check-for-no-dev-when-dropping-aliases.patch rename to 6048-devs-check-for-no-dev-when-dropping-aliases.patch diff --git a/6043-cov-missing-checks-of-syscalls.patch b/6049-cov-missing-checks-of-syscalls.patch similarity index 100% rename from 6043-cov-missing-checks-of-syscalls.patch rename to 6049-cov-missing-checks-of-syscalls.patch diff --git a/6044-cov-ensure-read_ahead-is-available.patch b/6050-cov-ensure-read_ahead-is-available.patch similarity index 100% rename from 6044-cov-ensure-read_ahead-is-available.patch rename to 6050-cov-ensure-read_ahead-is-available.patch diff --git a/6045-lvmcache-free-resource-on-error-path.patch b/6051-lvmcache-free-resource-on-error-path.patch similarity index 100% rename from 6045-lvmcache-free-resource-on-error-path.patch rename to 6051-lvmcache-free-resource-on-error-path.patch diff --git a/6046-daemons-check-for-non-zero-thread_id.patch b/6052-daemons-check-for-non-zero-thread_id.patch similarity index 100% rename from 6046-daemons-check-for-non-zero-thread_id.patch rename to 6052-daemons-check-for-non-zero-thread_id.patch diff --git a/6047-revert-label_scan-remove-extra-label-scan-and-read-f.patch b/6053-revert-label_scan-remove-extra-label-scan-and-read-f.patch similarity index 100% rename from 6047-revert-label_scan-remove-extra-label-scan-and-read-f.patch rename to 6053-revert-label_scan-remove-extra-label-scan-and-read-f.patch diff --git a/lvm2.spec b/lvm2.spec index 5d9ef3c..572a7d0 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -43,7 +43,7 @@ Name: lvm2 Version: 2.02.181 -Release: 4 +Release: 5 Epoch: 8 Summary: Tools for logical volume management License: GPLv2 and LGPLv2 @@ -90,16 +90,22 @@ Patch6034: 6034-mangenerator-check-strdup-was-successfull.patch Patch6035: 6035-cov-ensure-lock_type-is-not-NULL.patch Patch6036: 6036-Remove-checking-for-locked-VGs.patch Patch6037: 6037-lvm2-default-allow-changes-with-duplicate-pvs.patch -Patch6038: 6038-lvmetad-fix-sync-cache-to-lvmetad.patch -Patch6039: 6039-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch -Patch6040: 6040-libdaemon-ensure-threads-are-reaped-before-checking-.patch -Patch6041: 6041-lvmetad-fix-timeout-on-shutdown.patch -Patch6042: 6042-devs-check-for-no-dev-when-dropping-aliases.patch -Patch6043: 6043-cov-missing-checks-of-syscalls.patch -Patch6044: 6044-cov-ensure-read_ahead-is-available.patch -Patch6045: 6045-lvmcache-free-resource-on-error-path.patch -Patch6046: 6046-daemons-check-for-non-zero-thread_id.patch -Patch6047: 6047-revert-label_scan-remove-extra-label-scan-and-read-f.patch +Patch6038: 6038-lvm2-revert-to-use-label_read-in-lvmetad_pvscan_sing.patch +Patch6039: 6039-bcache-Fix-memory-leak.patch +Patch6040: 6040-cov-release-iterator-on-error-path.patch +Patch6041: 6041-cov-check-result-of-dev_read_bytes.patch +Patch6042: 6042-cov-check-for-socket_path-being-set.patch +Patch6043: 6043-cov-clearer-condition-check.patch +Patch6044: 6044-lvmetad-fix-sync-cache-to-lvmetad.patch +Patch6045: 6045-libdaemon-use-pselect-to-avoid-condition-checking-ra.patch +Patch6046: 6046-libdaemon-ensure-threads-are-reaped-before-checking-.patch +Patch6047: 6047-lvmetad-fix-timeout-on-shutdown.patch +Patch6048: 6048-devs-check-for-no-dev-when-dropping-aliases.patch +Patch6049: 6049-cov-missing-checks-of-syscalls.patch +Patch6050: 6050-cov-ensure-read_ahead-is-available.patch +Patch6051: 6051-lvmcache-free-resource-on-error-path.patch +Patch6052: 6052-daemons-check-for-non-zero-thread_id.patch +Patch6053: 6053-revert-label_scan-remove-extra-label-scan-and-read-f.patch Patch9000: 9000-bugfix-lvm2-add-SSD.patch Patch9001: 9001-bugfix-add-timeout-when-fail-to-wait-udev.patch @@ -544,6 +550,12 @@ fi %changelog +* Sat Dec 28 2019 openEuler Buildteam - 8:2.02.181-5 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:sync bugfix from community + * Mon Dec 23 2019 openEuler Buildteam - 8:2.02.181-4 - Type:bugfix - ID:NA -- Gitee