<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/scripts/offload.scm, branch master</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://www.git.jakob.space/guix.git/atom?h=master</id>
<link rel='self' href='https://www.git.jakob.space/guix.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/'/>
<updated>2019-06-05T21:10:36Z</updated>
<entry>
<title>syscalls: Add 'with-file-lock' macro.</title>
<updated>2019-06-05T21:10:36Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-03T14:23:01Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=b7178c22bf642919345095aff9e34e02c00d5762'/>
<id>urn:sha1:b7178c22bf642919345095aff9e34e02c00d5762</id>
<content type='text'>
* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock):
Move to...
* guix/build/syscalls.scm: ... here.
</content>
</entry>
<entry>
<title>offload: 'status' reports the time difference.</title>
<updated>2019-01-22T22:04:05Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-22T16:37:59Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=02ec889e6b8f6593dd90afcb4d60a43ea67be4b8'/>
<id>urn:sha1:02ec889e6b8f6593dd90afcb4d60a43ea67be4b8</id>
<content type='text'>
* guix/scripts/offload.scm (check-machine-status): Report the time
difference for each MACHINE.
</content>
</entry>
<entry>
<title>store: Rename '&amp;nix-error' to '&amp;store-error'.</title>
<updated>2019-01-21T22:09:55Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-21T16:41:11Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=f9e8a12379c6fefc9e5c3c7fc3926599bbefc013'/>
<id>urn:sha1:f9e8a12379c6fefc9e5c3c7fc3926599bbefc013</id>
<content type='text'>
* guix/store.scm (&amp;nix-error): Rename to...
(&amp;store-error): ... this, and adjust users.
(&amp;nix-connection-error): Rename to...
(&amp;store-connection-error): ... this, and adjust users.
(&amp;nix-protocol-error): Rename to...
(&amp;store-protocol-error): ... this, adjust users.
(&amp;nix-error, &amp;nix-connection-error, &amp;nix-protocol-error): Define these
condition types and their getters as deprecrated aliases.
* build-aux/run-system-tests.scm, guix/derivations.scm,
guix/grafts.scm, guix/scripts/challenge.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/offload.scm, guix/serialization.scm,
guix/ssh.scm, guix/tests.scm, guix/ui.scm,
tests/derivations.scm, tests/gexp.scm, tests/guix-daemon.sh,
tests/packages.scm, tests/store.scm, doc/guix.texi: Adjust to use the
new names.
</content>
</entry>
<entry>
<title>offload: Remove unnecessary locking on machine slots.</title>
<updated>2018-12-26T17:40:49Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-26T16:42:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=0ef595b99689a4d80521abd87fa893695c7f75df'/>
<id>urn:sha1:0ef595b99689a4d80521abd87fa893695c7f75df</id>
<content type='text'>
This extra level of locking turned out to be unnecessary.

* guix/scripts/offload.scm (with-machine-lock): Remove.
(machine-lock-file): Remove.
(acquire-build-slot): Remove surrounding 'with-machine-lock'.
</content>
</entry>
<entry>
<title>offload: Remove the "machine choice" lock.</title>
<updated>2018-12-26T17:40:49Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-26T16:30:56Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=7f4d102c2fff9ff60cd7bc69f5e7eb694274baae'/>
<id>urn:sha1:7f4d102c2fff9ff60cd7bc69f5e7eb694274baae</id>
<content type='text'>
This lock was unnecessary and it led to a contention when many 'guix
offload' processes are polling for available machines.

* guix/scripts/offload.scm (machine-choice-lock-file): Remove.
(choose-build-machine): Remove surrounding 'with-file-lock (machine-lock-file)'.
</content>
</entry>
<entry>
<title>offload: Adjust 'test' and 'status' to the latest changes.</title>
<updated>2018-12-25T16:13:43Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-25T16:03:37Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=10b2834f82b7502dc2dc733d39d97f9ff2d07564'/>
<id>urn:sha1:10b2834f82b7502dc2dc733d39d97f9ff2d07564</id>
<content type='text'>
This is a followup to ed7b44370f71126087eb953f36aad8dc4c44109f;
following that commit, 'guix offload test' and 'guix offload status'
would abort with a backtrace instead of clearly diagnosing a missing
'guix' command on the build machine.

* guix/scripts/offload.scm (assert-node-has-guix): Call 'leave' when
NODE is not an inferior.  Remove 'catch' blocks for 'node-repl-error'.
(check-machine-availability): Invoke 'assert-node-has-guix' first.
(check-machine-status): Print a warning when 'remote-inferior' returns #f.
</content>
</entry>
<entry>
<title>offload: Use (guix inferior) instead of (ssh dist node).</title>
<updated>2018-12-24T15:06:32Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-24T14:40:04Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=ed7b44370f71126087eb953f36aad8dc4c44109f'/>
<id>urn:sha1:ed7b44370f71126087eb953f36aad8dc4c44109f</id>
<content type='text'>
Using inferiors and thus 'guix repl' simplifies setup on build
machines (no need to worry about GUILE_LOAD_PATH etc.)

Furthermore, the 'guix repl -t machine' protocol running in a remote
pipe addresses several issues with the current implementation of nodes
and RREPLs in Guile-SSH: fewer round trips, doesn't leave a 'guile
--listen' process behind it, stateless (since a new process is started
each time), more efficient (the SSH channel can be reused), more
reliable (no 'pgrep', 'pkill', and shellology; see
&lt;https://github.com/artyom-poptsov/guile-ssh/issues/11&gt; as an example.)

* guix/ssh.scm (inferior-remote-eval): New procedure.
(send-files): Use it instead of 'make-node' and 'node-eval'.
* guix/scripts/offload.scm (node-guile-version): New procedure.
(node-free-disk-space, transfer-and-offload, node-load)
(choose-build-machine, assert-node-has-guix): Use 'remote-inferior'
instead of 'make-node' and 'inferior-eval' instead of 'node-eval'.
(assert-node-can-import, assert-node-can-export): Likewise, and add
'session' parameter.
(check-machine-availability): Likewise, and add calls to
'close-inferior' and 'disconnect!'.
(check-machine-status): Likewise.
* doc/guix.texi (Daemon Offload Setup): Remove bit related to 'guile' in
$PATH and $GUILE_LOAD_PATH; mention 'guix' alone.
</content>
</entry>
<entry>
<title>offload: Display the normalized load in 'guix offload status' output.</title>
<updated>2018-12-23T21:14:15Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-22T13:24:49Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=62b845c5e2c28a360102f095548e3dc3e9cf3200'/>
<id>urn:sha1:62b845c5e2c28a360102f095548e3dc3e9cf3200</id>
<content type='text'>
Fixes a regression introduced in
bbe66a530a014e8146d63002a5294941e935f863 whereby the actual
load (non-normalized) would be displayed.

* guix/scripts/offload.scm (check-machine-status): Add call to
'normalized-load'.
</content>
</entry>
<entry>
<title>offload: Recognize build failures due to lack of disk space.</title>
<updated>2018-12-21T22:50:13Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-21T22:31:19Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=b96e05aefd7a4f734cfec3b27c2d38320d43b687'/>
<id>urn:sha1:b96e05aefd7a4f734cfec3b27c2d38320d43b687</id>
<content type='text'>
Previously, if a remote build would fail due to lack of disk space, this
would be considered a permanent failure and thus cached as a build
failure if the local daemon runs with '--cache-failures'.

* guix/scripts/offload.scm (transfer-and-offload): Upon
'nix-protocol-error?' call 'node-free-disk-space' and return 1 instead
of 100 if the result if lower than 10 MiB.
</content>
</entry>
<entry>
<title>offload: Skip machines that are low on disk space.</title>
<updated>2018-12-21T22:50:13Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-21T22:12:52Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=63b0c3eaccdf1816b419632cd7fe721934d2eb27'/>
<id>urn:sha1:63b0c3eaccdf1816b419632cd7fe721934d2eb27</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/33378&gt;.

* guix/scripts/offload.scm (node-free-disk-space): New procedure.
(%minimum-disk-space): New variable.
(choose-build-machine): Call 'node-free-disk-space' and take it into
account in addition to LOAD.
(check-machine-status): Display the free disk space.
</content>
</entry>
</feed>
