summary refs log tree commit diff
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.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.