From c2fc978ffd9f2074430355f9716a5c4e6ff06729 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Thu, 13 May 2021 23:03:10 -0700 Subject: [PATCH] better heuristic to find mount error --- src/volumes.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/volumes.js b/src/volumes.js index 090447806..9e42636fb 100644 --- a/src/volumes.js +++ b/src/volumes.js @@ -161,17 +161,20 @@ async function getStatus(volume) { let output = safe.child_process.execSync(`systemctl show --value -p ActiveState $(systemd-escape -p --suffix=mount ${volume.hostPath})`, { encoding: 'utf8' }); let state = output ? output.trim() : ''; - let message = 'Mounted'; + let message; if (state !== 'active') { // find why it failed output = safe.child_process.execSync(`journalctl -u $(systemd-escape -p --suffix=mount ${volume.hostPath}) -n 10 --no-pager -o cat`, { encoding: 'utf8' }); - if (!output) { - message = `Could not determine failure reason: ${safe.error.message}`; - } else { - message = output.split('\n').reverse().find(l => l.startsWith('mount.')); + if (output) { + const idx = output.split('\n').reverse().findIndex(l => l.includes('process exited')); + if (idx > 0) message = output[idx-1]; // the line before probably has the error } + if (!message) message = `Could not determine failure reason: ${safe.error.message}`; + } else { + message = 'Mounted'; } + return { state, message }; }