aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2020-03-23 18:35:51 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2020-03-23 18:46:40 +0100
commitf9b6f75d1c387acbedfb27962d5dbd34bc3c1492 (patch)
tree3af31ebd3af90f647cf7315b69dedf278f70fb44 /gnu/installer
parent5490b2c733c96887c7d0dbfd6ce438df170870a1 (diff)
downloadguix-f9b6f75d1c387acbedfb27962d5dbd34bc3c1492.tar
guix-f9b6f75d1c387acbedfb27962d5dbd34bc3c1492.tar.gz
installer: Fix cow-store umount issue.
* gnu/installer/final.scm (kill-cow-users): Ignore exception that could be raised if a process disappears between reading its pid and its maps file.
Diffstat (limited to 'gnu/installer')
-rw-r--r--gnu/installer/final.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 3c170e5d0f..4c2da484c9 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -111,12 +111,13 @@ USERS."
(let ((pids
(filter-map (lambda (pid)
- (call-with-input-file
- (string-append "/proc/" pid "/maps")
- (lambda (port)
- (and (string-contains (get-string-all port)
- cow-path)
- (string->number pid)))))
+ (false-if-exception
+ (call-with-input-file
+ (string-append "/proc/" pid "/maps")
+ (lambda (port)
+ (and (string-contains (get-string-all port)
+ cow-path)
+ (string->number pid))))))
(scandir "/proc" string->number))))
(for-each (lambda (pid)
;; cmdline does not always exist.