From 5b320bfb8e5f751ed6ebd0b58b676721231186fb Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 14:09:45 +0300 Subject: [PATCH 01/20] [WIP] Run cgroup v2 tests using UML --- .github/workflows/rust.yml | 1 - ci/linux.sh | 35 +++-------------------------------- uml-ci/main.sh | 17 +++++++++++++++++ uml-ci/payload.sh | 11 +++++++++++ uml-ci/uml-setup.sh | 22 ++++++++++++++++++++++ uml-ci/uml-slirp.sh | 3 +++ uml-ci/uml-ssh.sh | 7 +++++++ 7 files changed, 63 insertions(+), 33 deletions(-) create mode 100755 uml-ci/main.sh create mode 100755 uml-ci/payload.sh create mode 100755 uml-ci/uml-setup.sh create mode 100755 uml-ci/uml-slirp.sh create mode 100755 uml-ci/uml-ssh.sh diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 4c1a1bb1..78725c3e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -62,7 +62,6 @@ jobs: matrix: os: - "ubuntu-20.04" - - "macos-latest" rust-target: - "x86_64-unknown-linux-musl" cgroups: diff --git a/ci/linux.sh b/ci/linux.sh index db87ebb8..f74aeb98 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -6,42 +6,13 @@ echo "Operating system: $CI_OS" echo "this is hack, ignore this file" >> ./stracez-dummy -if [[ $CI_OS == "ubuntu-20.04" ]]; then - if [[ $CI_CGROUPS == "cgroup-v2" ]]; then - echo "Skipping: cgroup v2 runs in macos" - exit 0 - fi -fi -if [[ $CI_OS == "macos-latest" ]]; then - if [[ $CI_CGROUPS == "cgroup-v1" ]]; then - echo "Skipping: cgroup v1 does not need virtualization" - exit 0 - fi -fi - echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" - vagrant --version -cat > Vagrantfile < logs.zip + sudo apt install sshpass + uml-ci/main.sh + sudo sshpass -p user ssh -p 2224 user@127.0.0.1 --command "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip rm stracez-dummy unzip logs.zip sleep 10 diff --git a/uml-ci/main.sh b/uml-ci/main.sh new file mode 100755 index 00000000..4791d8be --- /dev/null +++ b/uml-ci/main.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +wget https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz -O img.xz +unxz img.xz +wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.93.tar.xz +tar -xvJf linux-5.4.93.tar.xz +( +cd linux-5.4.93 +export ARCH=um +make defconfig +make -j3 +) +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh +linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & +./uml-ssh.sh diff --git a/uml-ci/payload.sh b/uml-ci/payload.sh new file mode 100755 index 00000000..e6a84197 --- /dev/null +++ b/uml-ci/payload.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +sudo dnf install -y gcc gcc-c++ strace zip +curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable +export CI_OS=fedora +export CI_CGROUPS=cgroup-v2 +export CI_TARGET=x86_64-unknown-linux-musl +export CI_VM=1 +pwd +find +cat ci/linux.sh diff --git a/uml-ci/uml-setup.sh b/uml-ci/uml-setup.sh new file mode 100755 index 00000000..d6f6cb5e --- /dev/null +++ b/uml-ci/uml-setup.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +mkdir /dev/mnt +mount /dev/ubda1 /dev/mnt +sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /dev/mnt/etc/ssh/sshd_config +echo >> /dev/mnt/usr/lib/systemd/system/rc-local.service +echo '[Install]' >> /dev/mnt/usr/lib/systemd/system/rc-local.service +echo 'WantedBy=multi-user.target' >> /dev/mnt/usr/lib/systemd/system/rc-local.service +sed -i 's/After=.*/After=sshd.service/' /dev/mnt/usr/lib/systemd/system/rc-local.service +chroot /dev/mnt systemctl enable rc-local +echo '#!/bin/bash + +echo root:root | chpasswd +ifconfig eth0 10.0.2.15 netmask 255.255.255.0 +route add default dev eth0 +echo nameserver 10.0.2.3 > /etc/resolv.conf +exit 0 +' > /dev/mnt/etc/rc.d/rc.local +chmod +x /dev/mnt/etc/rc.d/rc.local +umount /dev/mnt +sync +poweroff -f diff --git a/uml-ci/uml-slirp.sh b/uml-ci/uml-slirp.sh new file mode 100755 index 00000000..e6b72016 --- /dev/null +++ b/uml-ci/uml-slirp.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +exec slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' diff --git a/uml-ci/uml-ssh.sh b/uml-ci/uml-ssh.sh new file mode 100755 index 00000000..a24564c0 --- /dev/null +++ b/uml-ci/uml-ssh.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# wait for vm startup +while ! echo incompatible | nc 127.0.0.1 2224; do sleep 1; done + +sshpass -p root ssh -o 'StrictHostKeyChecking no' -p 2224 root@127.0.0.1 'sed -i '"'"'s/.*wheel.*/#\0/'"'"' /etc/sudoers; sed -i '"'"'s/#*\(.*wheel.*NOPASSWD.*\)/\1/'"'"' /etc/sudoers; adduser -g wheel --uid '"$(id -u)"' user; echo user:user | chpasswd' +sshpass -p user ssh -o 'StrictHostKeyChecking no' -p 2224 user@127.0.0.1 'sudo mount -t hostfs hostfs ~; cd; exec uml-ci/payload.sh' From 43c019bc93260ecc5244faddb08d216bd2a5a89d Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 14:24:27 +0300 Subject: [PATCH 02/20] huj --- uml-ci/main.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/uml-ci/main.sh b/uml-ci/main.sh index 4791d8be..af951d74 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -12,6 +12,7 @@ export ARCH=um make defconfig make -j3 ) +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/home/runner/work/minion/minion/ linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & ./uml-ssh.sh From e53cbd380f6c8af5f393e01ad51dbc741cf07d52 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 14:38:53 +0300 Subject: [PATCH 03/20] huj --- uml-ci/main.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/uml-ci/main.sh b/uml-ci/main.sh index af951d74..632a569a 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -2,17 +2,18 @@ set -e -wget https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz -O img.xz +wget -q https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz -O img.xz unxz img.xz -wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.93.tar.xz -tar -xvJf linux-5.4.93.tar.xz +wget -q https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.93.tar.xz +tar -xJf linux-5.4.93.tar.xz ( cd linux-5.4.93 export ARCH=um make defconfig make -j3 ) -linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/home/runner/work/minion/minion/ +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/true +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/bash "$PWD"/uml-setup.sh linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & ./uml-ssh.sh From d9a3f7d1d616394d3e64ca0c238dc83b56fec4bd Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 14:49:18 +0300 Subject: [PATCH 04/20] bolshe breven suka --- uml-ci/main.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/uml-ci/main.sh b/uml-ci/main.sh index 632a569a..7454b143 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -e - wget -q https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz -O img.xz unxz img.xz wget -q https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.93.tar.xz @@ -12,8 +10,9 @@ export ARCH=um make defconfig make -j3 ) +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/ linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/true linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/bash "$PWD"/uml-setup.sh -linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh -linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & -./uml-ssh.sh +#linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh +#linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & +#./uml-ssh.sh From 6c27678ffc912c24e94e4294d0079048fcf3e6ea Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 15:16:09 +0300 Subject: [PATCH 05/20] brevno --- ci/linux.sh | 5 +++-- uml-ci/main.sh | 11 +++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ci/linux.sh b/ci/linux.sh index f74aeb98..3ba6123c 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -11,8 +11,9 @@ echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" sudo apt install sshpass - uml-ci/main.sh - sudo sshpass -p user ssh -p 2224 user@127.0.0.1 --command "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip + ( cd uml-ci; ./main.sh; ) + sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip + sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff rm stracez-dummy unzip logs.zip sleep 10 diff --git a/uml-ci/main.sh b/uml-ci/main.sh index 7454b143..d957f354 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + wget -q https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz -O img.xz unxz img.xz wget -q https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.93.tar.xz @@ -10,9 +12,6 @@ export ARCH=um make defconfig make -j3 ) -linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/ -linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/true -linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init=/bin/bash "$PWD"/uml-setup.sh -#linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh -#linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & -#./uml-ssh.sh +linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh +linux-5.4.93/linux mem=4096M ubda=img root=/dev/ubda1 rootfstype=ext4 hostfs=.. eth0=slirp,,./uml-slirp.sh & +./uml-ssh.sh From 442b610e62a21f2340906b786cceb5bf78403b7e Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 15:37:52 +0300 Subject: [PATCH 06/20] install slirp --- ci/linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/linux.sh b/ci/linux.sh index 3ba6123c..da731d1b 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -10,7 +10,7 @@ echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" - sudo apt install sshpass + sudo apt install sshpass slirp ( cd uml-ci; ./main.sh; ) sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff From c7d6e14c5236bc39897d45dc274dc0381b324fb7 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 15:50:53 +0300 Subject: [PATCH 07/20] gay --- uml-ci/uml-ssh.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/uml-ci/uml-ssh.sh b/uml-ci/uml-ssh.sh index a24564c0..86883562 100755 --- a/uml-ci/uml-ssh.sh +++ b/uml-ci/uml-ssh.sh @@ -3,5 +3,8 @@ # wait for vm startup while ! echo incompatible | nc 127.0.0.1 2224; do sleep 1; done +set -e + +sleep 10 sshpass -p root ssh -o 'StrictHostKeyChecking no' -p 2224 root@127.0.0.1 'sed -i '"'"'s/.*wheel.*/#\0/'"'"' /etc/sudoers; sed -i '"'"'s/#*\(.*wheel.*NOPASSWD.*\)/\1/'"'"' /etc/sudoers; adduser -g wheel --uid '"$(id -u)"' user; echo user:user | chpasswd' sshpass -p user ssh -o 'StrictHostKeyChecking no' -p 2224 user@127.0.0.1 'sudo mount -t hostfs hostfs ~; cd; exec uml-ci/payload.sh' From d5b64a8260e5655f2f19f799ad432284c9ef7c93 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 16:34:45 +0300 Subject: [PATCH 08/20] ssh it --- uml-ci/payload.sh | 4 +--- uml-ci/uml-ssh.sh | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/uml-ci/payload.sh b/uml-ci/payload.sh index e6a84197..08fa272a 100755 --- a/uml-ci/payload.sh +++ b/uml-ci/payload.sh @@ -6,6 +6,4 @@ export CI_OS=fedora export CI_CGROUPS=cgroup-v2 export CI_TARGET=x86_64-unknown-linux-musl export CI_VM=1 -pwd -find -cat ci/linux.sh +bash ci/linux.sh diff --git a/uml-ci/uml-ssh.sh b/uml-ci/uml-ssh.sh index 86883562..dc0e4123 100755 --- a/uml-ci/uml-ssh.sh +++ b/uml-ci/uml-ssh.sh @@ -6,5 +6,5 @@ while ! echo incompatible | nc 127.0.0.1 2224; do sleep 1; done set -e sleep 10 -sshpass -p root ssh -o 'StrictHostKeyChecking no' -p 2224 root@127.0.0.1 'sed -i '"'"'s/.*wheel.*/#\0/'"'"' /etc/sudoers; sed -i '"'"'s/#*\(.*wheel.*NOPASSWD.*\)/\1/'"'"' /etc/sudoers; adduser -g wheel --uid '"$(id -u)"' user; echo user:user | chpasswd' -sshpass -p user ssh -o 'StrictHostKeyChecking no' -p 2224 user@127.0.0.1 'sudo mount -t hostfs hostfs ~; cd; exec uml-ci/payload.sh' +sshpass -p root ssh -v -o 'StrictHostKeyChecking no' -p 2224 root@127.0.0.1 'sed -i '"'"'s/.*wheel.*/#\0/'"'"' /etc/sudoers; sed -i '"'"'s/#*\(.*wheel.*NOPASSWD.*\)/\1/'"'"' /etc/sudoers; adduser -g wheel --uid '"$(id -u)"' user; echo user:user | chpasswd' +sshpass -p user ssh -v -o 'StrictHostKeyChecking no' -p 2224 user@127.0.0.1 'sudo mount -t hostfs hostfs ~; cd; exec uml-ci/payload.sh' From 5fac194b4dda193e6865e3ce4786ff18191ca736 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 17:07:34 +0300 Subject: [PATCH 09/20] sniff slirp traffic --- .github/workflows/rust.yml | 8 ++++++++ uml-ci/uml-slirp.sh | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 78725c3e..2112bb60 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -94,6 +94,14 @@ jobs: with: path: /tmp/logs name: tests-trace-${{ matrix.cgroups }}-${{ matrix.os }} + - uses: actions/upload-artifact@v1 + if: always() + with: + path: /tmp/slirp_in.log + - uses: actions/upload-artifact@v1 + if: always() + with: + path: /tmp/slirp_out.log nightly-checks: runs-on: ubuntu-20.04 diff --git a/uml-ci/uml-slirp.sh b/uml-ci/uml-slirp.sh index e6b72016..afe7650b 100755 --- a/uml-ci/uml-slirp.sh +++ b/uml-ci/uml-slirp.sh @@ -1,3 +1,3 @@ #!/bin/bash -exec slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' +stdbuf -i 0 -o 0 tee /tmp/slirp_in.log | slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' | stdbuf -i 0 -o 0 tee /tmp/slirp_out.log From dfcc3c4065889a08bab36eb945adb4beed5a338f Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 17:15:55 +0300 Subject: [PATCH 10/20] fix shit --- .github/workflows/rust.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 2112bb60..4d550118 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -98,10 +98,12 @@ jobs: if: always() with: path: /tmp/slirp_in.log + name: slirp_in.log - uses: actions/upload-artifact@v1 if: always() with: path: /tmp/slirp_out.log + name: slirp_out.log nightly-checks: runs-on: ubuntu-20.04 From 9f9e7a6e4ae04dc4bbe7c14637ecf164a89cb6f0 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 17:23:01 +0300 Subject: [PATCH 11/20] huj --- .github/workflows/rust.yml | 12 +----------- uml-ci/uml-setup.sh | 2 ++ uml-ci/uml-slirp.sh | 2 +- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 4d550118..25014be2 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -88,22 +88,12 @@ jobs: if: always() run: | mkdir /tmp/logs - cp ./strace* /tmp/logs + cp ./strace* uml-ci/slirp* /tmp/logs - uses: actions/upload-artifact@v1 if: always() with: path: /tmp/logs name: tests-trace-${{ matrix.cgroups }}-${{ matrix.os }} - - uses: actions/upload-artifact@v1 - if: always() - with: - path: /tmp/slirp_in.log - name: slirp_in.log - - uses: actions/upload-artifact@v1 - if: always() - with: - path: /tmp/slirp_out.log - name: slirp_out.log nightly-checks: runs-on: ubuntu-20.04 diff --git a/uml-ci/uml-setup.sh b/uml-ci/uml-setup.sh index d6f6cb5e..3df3fa53 100755 --- a/uml-ci/uml-setup.sh +++ b/uml-ci/uml-setup.sh @@ -14,6 +14,8 @@ echo root:root | chpasswd ifconfig eth0 10.0.2.15 netmask 255.255.255.0 route add default dev eth0 echo nameserver 10.0.2.3 > /etc/resolv.conf +ifconfig -a > /dev/console +route > /dev/console exit 0 ' > /dev/mnt/etc/rc.d/rc.local chmod +x /dev/mnt/etc/rc.d/rc.local diff --git a/uml-ci/uml-slirp.sh b/uml-ci/uml-slirp.sh index afe7650b..f1db0906 100755 --- a/uml-ci/uml-slirp.sh +++ b/uml-ci/uml-slirp.sh @@ -1,3 +1,3 @@ #!/bin/bash -stdbuf -i 0 -o 0 tee /tmp/slirp_in.log | slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' | stdbuf -i 0 -o 0 tee /tmp/slirp_out.log +stdbuf -i 0 -o 0 tee slirp_in.log | slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' | stdbuf -i 0 -o 0 tee slirp_out.log From b3aef59bd0420b71e4e856cd7a3891ff1e66de34 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 17:30:06 +0300 Subject: [PATCH 12/20] kostyl --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 25014be2..14b97e56 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -88,7 +88,7 @@ jobs: if: always() run: | mkdir /tmp/logs - cp ./strace* uml-ci/slirp* /tmp/logs + cp ./strace* uml-ci/slirp* /tmp/logs || true - uses: actions/upload-artifact@v1 if: always() with: From 39b9045414c6c2cb273d0fcdafafa0efb2d6cd33 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 17:52:48 +0300 Subject: [PATCH 13/20] gay --- ci/linux.sh | 2 +- uml-ci/uml-slirp.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/linux.sh b/ci/linux.sh index da731d1b..b97b2865 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -10,7 +10,7 @@ echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" - sudo apt install sshpass slirp + sudo apt install sshpass slirp strace ( cd uml-ci; ./main.sh; ) sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff diff --git a/uml-ci/uml-slirp.sh b/uml-ci/uml-slirp.sh index f1db0906..bfe3aac0 100755 --- a/uml-ci/uml-slirp.sh +++ b/uml-ci/uml-slirp.sh @@ -1,3 +1,3 @@ #!/bin/bash -stdbuf -i 0 -o 0 tee slirp_in.log | slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' | stdbuf -i 0 -o 0 tee slirp_out.log +exec strace -f -o slirp.log slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' From e6a90d9c33a49210fb570cc05507593c3c840e24 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 19:00:03 +0300 Subject: [PATCH 14/20] slirp from debian --- ci/linux.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/linux.sh b/ci/linux.sh index b97b2865..ddd52cc6 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -10,7 +10,8 @@ echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" - sudo apt install sshpass slirp strace + sudo apt install sshpass strace + wget http://ftp.debian.org/debian/pool/main/s/slirp/slirp_1.0.17-8_amd64.deb -O slirp.deb && dpkg -i slirp.deb ( cd uml-ci; ./main.sh; ) sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff From 0021a3dafa6d7136366ccdf8a359fd0ad4cadb3c Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 22:49:24 +0300 Subject: [PATCH 15/20] uml config fix #2 --- uml-ci/main.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/uml-ci/main.sh b/uml-ci/main.sh index d957f354..3b62f48a 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -10,6 +10,12 @@ tar -xJf linux-5.4.93.tar.xz cd linux-5.4.93 export ARCH=um make defconfig +cat >> .config << EOF +CONFIG_CGROUP_PIDS=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y +EOF make -j3 ) linux-5.4.93/linux mem=4096M ubda=img rootfstype=hostfs init="$PWD"/uml-setup.sh From d7ba04159fa223931259e43ca5da78875083c882 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 22:56:05 +0300 Subject: [PATCH 16/20] sudo dpkg --- ci/linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/linux.sh b/ci/linux.sh index ddd52cc6..69741fd7 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -11,7 +11,7 @@ echo "::group::Preparing" if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then echo "::group::Preparing virtual machine" sudo apt install sshpass strace - wget http://ftp.debian.org/debian/pool/main/s/slirp/slirp_1.0.17-8_amd64.deb -O slirp.deb && dpkg -i slirp.deb + wget http://ftp.debian.org/debian/pool/main/s/slirp/slirp_1.0.17-8_amd64.deb -O slirp.deb && sudo dpkg -i slirp.deb ( cd uml-ci; ./main.sh; ) sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff From bd66f169ab502b4962d75a82a3b7224749aa50f9 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sat, 30 Jan 2021 23:10:09 +0300 Subject: [PATCH 17/20] timeout 20 mins --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 14b97e56..3002b12b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -79,7 +79,7 @@ jobs: - name: Test run: | bash ci/linux.sh - timeout-minutes: 10 + timeout-minutes: 20 env: CI_TARGET: ${{ matrix.rust-target }} CI_CGROUPS: ${{ matrix.cgroups }} From f214d63e1b61ce418ba540f8eec479b99935f8e1 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sun, 31 Jan 2021 11:59:50 +0300 Subject: [PATCH 18/20] userns & pidns --- .github/workflows/rust.yml | 2 +- uml-ci/main.sh | 3 +++ uml-ci/payload.sh | 3 +-- uml-ci/uml-slirp.sh | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3002b12b..d5aae362 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -88,7 +88,7 @@ jobs: if: always() run: | mkdir /tmp/logs - cp ./strace* uml-ci/slirp* /tmp/logs || true + cp ./strace* /tmp/logs - uses: actions/upload-artifact@v1 if: always() with: diff --git a/uml-ci/main.sh b/uml-ci/main.sh index 3b62f48a..d5dcda66 100755 --- a/uml-ci/main.sh +++ b/uml-ci/main.sh @@ -10,11 +10,14 @@ tar -xJf linux-5.4.93.tar.xz cd linux-5.4.93 export ARCH=um make defconfig +bash cat >> .config << EOF CONFIG_CGROUP_PIDS=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y EOF make -j3 ) diff --git a/uml-ci/payload.sh b/uml-ci/payload.sh index 08fa272a..446e7022 100755 --- a/uml-ci/payload.sh +++ b/uml-ci/payload.sh @@ -1,7 +1,6 @@ #!/bin/bash -sudo dnf install -y gcc gcc-c++ strace zip -curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable +sudo dnf install -y strace zip export CI_OS=fedora export CI_CGROUPS=cgroup-v2 export CI_TARGET=x86_64-unknown-linux-musl diff --git a/uml-ci/uml-slirp.sh b/uml-ci/uml-slirp.sh index bfe3aac0..e6b72016 100755 --- a/uml-ci/uml-slirp.sh +++ b/uml-ci/uml-slirp.sh @@ -1,3 +1,3 @@ #!/bin/bash -exec strace -f -o slirp.log slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' +exec slirp-fullbolt 'host addr 10.0.2.2' 'redir tcp 2224 10.0.2.15:22' From f7699b1f623bfdac1660b7e7c29d4059f59a72e6 Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sun, 31 Jan 2021 12:22:29 +0300 Subject: [PATCH 19/20] pulling logs -> 𓂸 --- ci/linux.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/linux.sh b/ci/linux.sh index 69741fd7..d9d9d643 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -13,8 +13,8 @@ if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then sudo apt install sshpass strace wget http://ftp.debian.org/debian/pool/main/s/slirp/slirp_1.0.17-8_amd64.deb -O slirp.deb && sudo dpkg -i slirp.deb ( cd uml-ci; ./main.sh; ) - sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip - sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff + #sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip # WTF?? + sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff || true rm stracez-dummy unzip logs.zip sleep 10 From 8d23ded4de69b4bf0f2643e03dbe819591d9336b Mon Sep 17 00:00:00 2001 From: Sergey Lisov Date: Sun, 31 Jan 2021 12:38:41 +0300 Subject: [PATCH 20/20] logs.zip -> 𓂸 --- ci/linux.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/linux.sh b/ci/linux.sh index d9d9d643..76184f2c 100644 --- a/ci/linux.sh +++ b/ci/linux.sh @@ -16,7 +16,7 @@ if [[ $CI_CGROUPS == "cgroup-v2" ]] && [ -z "${CI_VM+set}" ]; then #sudo sshpass -p user ssh -p 2224 user@127.0.0.1 "cat /vagrant/logs.zip | base64" | base64 --decode > logs.zip # WTF?? sudo sshpass -p user ssh -p 2224 user@127.0.0.1 sudo poweroff || true rm stracez-dummy - unzip logs.zip + #unzip logs.zip sleep 10 echo "Current directory after VM finish" ls . @@ -36,5 +36,5 @@ sudo --preserve-env ./tests/$CI_TARGET/minion-tests --trace echo "::group::Finalize" echo "Current directory after running tests" ls . -echo "Collecting logs to archive" -zip logs.zip strace* +#echo "Collecting logs to archive" +#zip logs.zip strace*