lix/src/libstore
Maximilian Bosch 7a04839ea5
ssh-ng: also store build logs to make them accessible by nix log
Right now when building a derivation remotely via

    $ nix build -j0 -f . hello -L --builders 'ssh://builder'

it's possible later to read through the entire build-log by running
`nix log -f . hello`. This isn't possible however when using `ssh-ng`
rather than `ssh`.

The reason for that is that there are two different ways to transfer
logs in Nix through e.g. an SSH tunnel (that are used by `ssh`/`ssh-ng`
respectively):

* `ssh://` receives its logs from the fd pointing to `builderOut`. This
  is directly passed to the "log-sink" (and to the logger on each `\n`),
  hence `nix log` works here.
* `ssh-ng://` however expects JSON-like messages (i.e. `@nix {log data
  in here}`) and passes it directly to the logger without doing anything
  with the `logSink`. However it's certainly possible to extract
  log-lines from this format as these have their own message-type in the
  JSON payload (i.e. `resBuildLogLine`).

  This is basically what I changed in this patch: if the code-path for
  `builderOut` is not reached and a `logSink` is initialized, the
  message was successfully processed by the JSON logger (i.e. it's in
  the expected format) and the line is of the expected type (i.e.
  `resBuildLogLine`), the line will be written to the log-sink as well.

Closes #5079
2022-02-28 17:27:52 +01:00
..
build ssh-ng: also store build logs to make them accessible by nix log 2022-02-28 17:27:52 +01:00
builtins Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
tests Add error reporting to machine spec paser 2021-10-17 12:45:56 +04:00
binary-cache-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
binary-cache-store.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
builtins.hh buildenv: Eliminate global variables, other cleanup 2020-03-24 14:06:47 +01:00
ca-specific-schema.sql ca-specific-schema.sql: add index on RealisationsRefs(referrer) and (outputPath) 2021-11-10 08:32:05 +00:00
content-address.cc Fix use after free in content-address.cc 2021-11-23 16:15:34 +01:00
content-address.hh Add ContentAddressMethod and parse/render it 2020-09-17 20:21:04 +02:00
crypto.cc Make sodium a required dependency 2021-01-06 17:56:53 +01:00
crypto.hh crypto.cc: API cleanup and add generate() / to_string() methods 2021-01-06 17:04:46 +01:00
daemon.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
daemon.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
derivations.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
derivations.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
derived-path.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
derived-path.hh Enfore the use of properly built paths in libcmd 2021-05-17 08:45:08 +02:00
dummy-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
export-import.cc Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
filetransfer.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
filetransfer.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
fs-accessor.hh Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
gc.cc Fix Darwin build 2022-02-28 15:48:26 +01:00
globals.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
globals.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
http-binary-cache-store.cc Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
legacy-ssh-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
local-binary-cache-store.cc BinaryCacheStore: Implement addBuildLog() 2022-01-18 16:14:01 +01:00
local-fs-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
local-fs-store.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
local-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
local-store.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
local.mk Merge pull request #5175 from Pamplemousse/make 2021-08-30 12:44:29 +02:00
lock.cc Trim lock.cc 2020-10-11 16:44:19 +00:00
lock.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
machines.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
machines.hh Remove std::string alias 2022-02-21 16:37:25 +01:00
misc.cc queryMissing(): Use a bigger thread pool 2021-12-13 21:11:37 +01:00
names.cc return string_views from forceString* 2022-01-27 17:15:43 +01:00
names.hh Remove std::string alias 2022-02-21 16:37:25 +01:00
nar-accessor.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
nar-accessor.hh Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
nar-info-disk-cache.cc Simplify the realisations disk cache 2021-05-10 17:47:14 +02:00
nar-info-disk-cache.hh Add a realisations disk cache 2021-05-06 17:38:20 +02:00
nar-info.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
nar-info.hh Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nix-store.pc.in pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
optimise-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
parsed-derivations.cc convert a for more utilities to string_view 2022-01-27 17:15:43 +01:00
parsed-derivations.hh Style 2021-07-12 17:32:23 +02:00
path-info.cc Low-latency closure copy 2021-07-26 13:31:09 +02:00
path-info.hh Low-latency closure copy 2021-07-26 13:31:09 +02:00
path-with-outputs.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
path-with-outputs.hh buildable.{cc,hh} -> derived-path.{cc,hh} 2021-04-05 10:33:28 -04:00
path.cc Move StorePathWithOutputs into its own header/file 2021-04-05 08:31:37 -04:00
path.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
pathlocks.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
pathlocks.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
profiles.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
profiles.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
realisation.cc Fix the build with nlohmann/json 3.10.4+ 2022-01-19 14:37:54 +01:00
realisation.hh buildPaths(): Add an evalStore argument 2021-07-22 09:59:51 +02:00
references.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
references.hh Add a test for RefScanSink and clean up the code 2021-10-04 14:29:42 +02:00
remote-fs-accessor.cc Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
remote-fs-accessor.hh Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
remote-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
remote-store.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
s3-binary-cache-store.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
s3-binary-cache-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3.hh Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
sandbox-defaults.sb Set new rosetta 2 path in sandbox 2021-11-22 14:42:31 -06:00
sandbox-minimal.sb Always use the Darwin sandbox 2017-06-06 18:44:49 +02:00
sandbox-network.sb OS X sandbox: Improve builtin sandbox profile 2017-05-31 17:25:51 +02:00
schema.sql Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
serve-protocol.hh nix-store --serve: pass on settings.keepFailed from SSH store 2021-08-31 13:11:46 +02:00
sqlite.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
sqlite.hh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
ssh-store.cc Shut down write side before draining the read side 2021-09-23 18:01:04 +02:00
ssh.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
ssh.hh distributed builds: load remote builder host key from the machines file 2021-02-25 09:17:34 -05:00
store-api.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
store-api.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
uds-remote-store.cc Non-blocking garbage collector 2021-10-13 12:12:44 +02:00
uds-remote-store.hh Shut down write side before draining the read side 2021-09-23 18:01:04 +02:00
worker-protocol.hh nix store ping: Report Nix daemon version 2022-01-25 21:15:58 +01:00