From 5b5bc77bb73f2d38744055d319bf15962516fd4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20=C5=98ezn=C3=AD=C4=8Dek?=
 <246254@mail.muni.cz>
Date: Tue, 7 Jun 2022 18:13:36 +0200
Subject: [PATCH] fix: gpumon GPU_DEVICES_UNRECOGNIZED detection crash

---
 CHANGELOG.md                    | 4 ++++
 src/metric-generators/gpumon.sh | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9c884a..3ab96fb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 
+## [1.2.4] - 2022-06-07
+### Added
+- gpumon: GPU_DEVICES_UNRECOGNIZED detection reworked without grep, with gawk, avoiding crash
+
 ## [1.2.3] - 2022-06-07
 ### Added
 - gpumon: publish at least a metric help (metric-generator-exec requirement)
diff --git a/src/metric-generators/gpumon.sh b/src/metric-generators/gpumon.sh
index 2cfffae..1c37b76 100755
--- a/src/metric-generators/gpumon.sh
+++ b/src/metric-generators/gpumon.sh
@@ -47,8 +47,8 @@ function find_gpu_passthough_vm_manifest () {
 # gather all GPU cards (assure device model name is detected)
 STAGE_NAME="GPU cards successfully detected"
 GPU_DEVICES="$(get_gpu_devices)"
-GPU_DEVICES_UNRECOGNIZED="$(echo "${GPU_DEVICES}" | gawk 'BEGIN{FPAT = "(\"[^\"]+\")"}{print $3}' | \
-                            sort -u | tr -d '"' | grep -Ev '.+[ \t]\[.+\]')"
+GPU_DEVICES_UNRECOGNIZED="$(echo "${GPU_DEVICES}" | \
+                            gawk 'BEGIN{FPAT = "(\"[^\"]+\")"}{if (!($3 ~ /.+[ \t]\[.+\]/)) {print $3}}')"
 if [ -n "${GPU_DEVICES_UNRECOGNIZED}" ]; then
     # reload GPU devices and resolve proper device names with internet PCI id database
     GPU_DEVICES="$(get_gpu_devices -q)"
-- 
GitLab