daemon: Gracefully handle cases where the daemon does not return a status code.
* guix/store.scm (process-stderr): Check for EOF before doing (read-int p).
This commit is contained in:
parent
6858f9d132
commit
0ff3e3aa9b
|
@ -336,7 +336,10 @@ encoding conversion errors."
|
||||||
#f))
|
#f))
|
||||||
((= k %stderr-error)
|
((= k %stderr-error)
|
||||||
(let ((error (read-latin1-string p))
|
(let ((error (read-latin1-string p))
|
||||||
(status (if (>= (nix-server-minor-version server) 8)
|
;; Currently the daemon fails to send a status code for early
|
||||||
|
;; errors like DB schema version mismatches, so check for EOF.
|
||||||
|
(status (if (and (>= (nix-server-minor-version server) 8)
|
||||||
|
(not (eof-object? (lookahead-u8 p))))
|
||||||
(read-int p)
|
(read-int p)
|
||||||
1)))
|
1)))
|
||||||
(raise (condition (&nix-protocol-error
|
(raise (condition (&nix-protocol-error
|
||||||
|
|
Loading…
Reference in New Issue