From 17727347dd594091ed9eac73cdbea82f47e050c6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 26 Apr 2024 19:41:23 +0200 Subject: Adding debian version 2.40-7. Signed-off-by: Daniel Baumann --- ...ort-gathering-per-process-information-eve.patch | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch (limited to 'debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch') diff --git a/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch b/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch new file mode 100644 index 0000000..59abf34 --- /dev/null +++ b/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch @@ -0,0 +1,77 @@ +From: Masatake YAMATO +Date: Sat, 13 Apr 2024 03:59:39 +0900 +Subject: lslocks: don't abort gathering per-process information even if + opening a /proc/[0-9]* fails + +If a process ($pid) taking a lock is gone while running lslocks, +gathering per-process information for the process may fail in opening +/proc/$pid. Though lslocks should work with incomplete information, +the original code stopped gathering per-process information for the +other processes. + +As a result of the original behavior, tests/ts/lslocks/lslocks really +failed in an environment where multiple test cases ran simultaneously. + +Close #2624 again. +See also #2633. + +Signed-off-by: Masatake YAMATO +(cherry picked from commit 20df923cc3d2da12a5296223c3ff0de7484cc587) +--- + misc-utils/lslocks.c | 6 ++---- + tests/ts/lslocks/lslocks | 11 ----------- + 2 files changed, 2 insertions(+), 15 deletions(-) + +diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c +index 3d70b04..60f6595 100644 +--- a/misc-utils/lslocks.c ++++ b/misc-utils/lslocks.c +@@ -513,10 +513,8 @@ static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) + if (procfs_dirent_get_pid(d, &pid) != 0) + continue; + +- if (procfs_process_init_path(pc, pid) != 0) { +- rc = -1; +- break; +- } ++ if (procfs_process_init_path(pc, pid) != 0) ++ continue; + + if (procfs_process_get_cmdname(pc, buf, sizeof(buf)) <= 0) + continue; +diff --git a/tests/ts/lslocks/lslocks b/tests/ts/lslocks/lslocks +index 912fac8..a9ef69a 100755 +--- a/tests/ts/lslocks/lslocks ++++ b/tests/ts/lslocks/lslocks +@@ -53,14 +53,6 @@ OFD_METHODS=( + lease-w + ) + +-SLEEP() +-{ +- # It appears that there is a time lag between locking and its +- # visibility in /proc/locks. See the unstbale results of errors I +- # observed in https://github.com/util-linux/util-linux/pull/2629. +- sleep 1 +-} +- + DFD=18 + COLS_WITH_HOLDERS=COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS + run_lslocks() +@@ -71,8 +63,6 @@ run_lslocks() + rm -f "${FILE}" + coproc MKFDS { "$TS_HELPER_MKFDS" make-regular-file $FD file="$FILE" lock=$m; } + if read -r -u "${MKFDS[0]}" PID; then +- SLEEP +- + "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o "${COLS}" + echo "# $m + ${COLS} + ${OPTS}": $? + "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o PATH | sed -e 's#.*\('"$FILE0"'\)--[0-9]\+ *$#\1#' +@@ -91,7 +81,6 @@ run_lslocks_with_co_holders() + { + rm -f "${FILE}" + coproc MKFDS { "$TS_HELPER_MKFDS" make-regular-file $FD file="$FILE" lock=$m dupfd=$DFD; } +- SLEEP + if read -r -u "${MKFDS[0]}" PID; then + "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o "${COLS_WITH_HOLDERS}" | sed -e "s/${PID},/1,/g" + echo "# $m + ${COLS_WITH_HOLDERS} + ${OPTS}": ${PIPESTATUS[0]} -- cgit v1.2.3