!UKDpaKNNsBpOPfLWfX:zhaofeng.li

Colmena

331 Members
A simple, stateless NixOS deployment tool - https://github.com/zhaofengli/colmena116 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
25 Sep 2022
@rendakuenthusiast:imperishable.namerendakuenthusiasthm, I ran into a weird issue05:38:42
@rendakuenthusiast:imperishable.namerendakuenthusiastI was having a problem building redis05:38:51
@rendakuenthusiast:imperishable.namerendakuenthusiast

specifically I got this exception:

couldn't execute "pgrep": no such file or directory
    while executing
"open "|pgrep -P $pid" "r""
    (procedure "get_child_pid" line 4)
    invoked from within
"get_child_pid 0"
    ("uplevel" body line 16)
    invoked from within
"uplevel 1 $code"
    (procedure "test" line 51)
    invoked from within
"test {Don't rehash if redis has child process} {
        r config set save ""
        r config set rdb-key-save-delay 1000000

        populate 4096 "..."
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $code "
    (procedure "start_server" line 3)
    invoked from within
"start_server {tags {"other external:skip"}} {
    test {Don't rehash if redis has child process} {
        r config set save ""
        r config set r..."
    (file "tests/unit/other.tcl" line 334)
    invoked from within
"source $path"
    (procedure "execute_test_file" line 4)
    invoked from within
"execute_test_file $data"
    (procedure "test_client_main" line 10)
    invoked from within
05:39:30
@rendakuenthusiast:imperishable.namerendakuenthusiastwhich I believe was coming from this test in redis' source: https://github.com/redis/redis/blob/b414605285244c453f3fadbbe7a157cd83ed5f59/tests/unit/other.tcl#L33405:39:41
@rendakuenthusiast:imperishable.namerendakuenthusiastwhich calls this code: https://github.com/redis/redis/blob/13d25dd95eec5e21925ef474b5d43f2acb23e54e/tests/support/util.tcl#L61605:39:56
@rendakuenthusiast:imperishable.namerendakuenthusiast

which does:

    if {[file exists "/usr/bin/pgrep"]} {
        set fd [open "|pgrep -P $pid" "r"]
        set child_pid [string trim [lindex [split [read $fd] \n] 0]]
    } else {
        set fd [open "|ps --ppid $pid -o pid" "r"]
        set child_pid [string trim [lindex [split [read $fd] \n] 1]]
    }
05:40:12
@rendakuenthusiast:imperishable.namerendakuenthusiast and when colmena tries to deploy from my laptop, I have /usr/bin/pgrep installed at that path in my normal OS 05:40:37
@rendakuenthusiast:imperishable.namerendakuenthusiast I was able to work around this by renaming /usr/bin/pgrep on my system and then building locally 05:40:56
@rendakuenthusiast:imperishable.namerendakuenthusiastI'm not sure what the principled way to solve this is05:41:05
@rendakuenthusiast:imperishable.namerendakuenthusiast this is basically a failure of hermeticism, right? the redis build was happening on my system and it has one bit of source code that looks at /usr/bin/pgrep. is there a principled way in nix to make that not visible to derivations being built? 05:41:49
@yuka:yuka.dev@yuka:yuka.dev
In reply to @yuka:yuka.dev
I have another request: In flake-enabled deployments, can we pass the nixpkgs flake so that the hive expression can use nixpkgs.lib.nixosSystem and get the proper system.nixos.(revision|versionSuffix)?
I guess this is issue https://github.com/zhaofengli/colmena/issues/60
08:15:39
26 Sep 2022
@rendakuenthusiast:imperishable.namerendakuenthusiastwhere does colmena cache tarballs? I think it is failing to register that a tarball has been updated00:41:15
@winterqt:nixos.devWinter (she/her)what tarballs?01:03:12
@jhillyerd:matrix.orgjhillyerd
In reply to @rendakuenthusiast:imperishable.name
this is basically a failure of hermeticism, right? the redis build was happening on my system and it has one bit of source code that looks at /usr/bin/pgrep. is there a principled way in nix to make that not visible to derivations being built?
Typically you would patch/rewrite the package to not point at /usr/bin, example for regular grep: https://github.com/NixOS/nixpkgs/blob/4e62b94df308e197c1f107564ebdb4318bb80e27/pkgs/development/libraries/nss/generic.nix#L61
04:59:20
@rendakuenthusiast:imperishable.namerendakuenthusiast Winter (she/her): I'm using builtins.fetchTarball to fetch an additional module with some custom modifications I made, from a server I control 05:00:44
@rendakuenthusiast:imperishable.namerendakuenthusiast jhillyerd: where does that substituteInPlace function come from? is that supposed to be shell code? 05:01:59

Show newer messages


Back to Room ListRoom Version: 6