Commit eda45b2a authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

scripts/core-collector: Filter out processes based on CWD



Don't collect cores from processes that were executed outside of
the target SPDK repo.

Fixes issue #3110

Change-Id: I8f50ed0af30507386dbf9387a2a0c1f532399bb0
Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19766


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@gmail.com>
parent 956f5e5b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ core_meta() {
		    "PID": $core_pid,
		    "signal": "$core_sig ($core_sig_name)",
		    "path": "$exe_path",
		    "cwd": "$cwd_path",
		    "statm": "$statm",
		    "filter": "$(coredump_filter)"
		  }
@@ -63,6 +64,7 @@ args+=(core_ts)
read -r "${args[@]}" <<< "$*"

exe_path=$(readlink -f "/proc/$core_pid/exe")
cwd_path=$(readlink -f "/proc/$core_pid/cwd")
exe_comm=$(< "/proc/$core_pid/comm")
statm=$(< "/proc/$core_pid/statm")
core_time=$(date -d@"$core_ts")
@@ -71,6 +73,9 @@ core_sig_name=$(kill -l "$core_sig")
core=$(< "${0%/*}/../.coredump_path")/${exe_path##*/}_$core_pid.core
stderr

# Filter out processes that were not executed from within our repo
[[ $cwd_path == "${0%/*/*}"* ]] || exit 0

# RLIMIT_CORE is not enforced when core is piped to us. To make
# sure we won't attempt to overload underlying storage, copy
# only the reasonable amount of bytes (systemd defaults to 2G