Yes.
That one should be easy hopefully.
binary_build_folder_dist
is currently set to "$HOMEVAR/derivative-binary"
binary_build_folder_dist=“$HOMEVAR/derivative-binary”
But can be overwritten using an environment variable.
binary_build_folder_dist="/path/to/folder"
export binary_build_folder_dist
That one may not be so easy to fix since I couldn’t reproduce that locally.
There might be some service running on the server which accesses that folder for some purpose such as KDE baloo indexing service. (Probably not that but something similar.)
Could you please share a
sudo ps aux
of the server?
Are logs posted automatically anywhere yet? If so or once that happens, I might be able to debug this easier but adding more and more debugging code to the build script.
Added more debugging (and maybe even a fix).
Mycobee:
I am definitely thinking that only building these VMs when a tagged is pushed is the way to go, because it is taking CI over an hour to build the VMs for both the gateway and the workstation. So when developing derivative-maker
, you can push a developers only tag for troubleshooting, or perhaps even create a debug tag in order to iterate. Is that okay?
Yes, very much so.
Yes, that would be amazing!
Mycobee
August 31, 2022, 11:08pm
42
New error with the umount_kill.sh
script after rebase
logs
+ sudo --non-interactive test -d /var/cache/pbuilder/base.cow_amd64
+ /home/ansible/derivative-maker/help-steps/umount_kill.sh /var/cache/pbuilder/base.cow_amd64/
/home/ansible/derivative-maker/help-steps/umount_kill.sh: ERROR: This MUST be run as root (sudo)!
++ errorhandlergeneral ERR
++ last_failed_exit_code=1
++ last_failed_bash_command='"$dist_source_help_steps_folder/umount_kill.sh" "$base_folder/"'
++ output_cmd_set
++ '[' -o xtrace ']'
++ output_cmd=true
++ true 'INFO: Middle of function errorhandlergeneral of ././build-steps.d/1200_create-debian-packages.'
++ errorhandlerprocessshared ERR
++ last_script=././build-steps.d/1200_create-debian-packages
++ trap_signal_type_previous=
++ '[' '' = '' ']'
++ trap_signal_type_previous=unset
++ trap_signal_type_last=ERR
++ dist_build_error_counter=1
1 Like
Mycobee
August 31, 2022, 11:18pm
43
Pretty sure it just needs $SUDO_TO_ROOT
on lines 182 and 229 in build-steps.d/1200_create-debian-packages
. Fixed on my branch
1 Like
Patrick
September 1, 2022, 12:33pm
44
Thanks! That and other similar cases is now fixed in 16.0.7.2-developers-only
.
Mycobee
September 1, 2022, 4:18pm
45
I guess I dont know what I am talking about because things still aren’t working.
logs
On the upside I got all the mounted volume issues fixed by just making the VPS a little larger and ditching the volume + mount logic. It was cheaper to add 50 gigs to the disk than have a 100gb block storage attached anyway
No need to make things unnecessarily complicated I suppose
1 Like
Patrick
September 2, 2022, 7:56am
46
Thank you for your patience with me!
More debugging in 16.0.7.3-developers-only
added and maybe even fixed.
Mycobee
September 2, 2022, 7:55pm
47
No worries at all! Still having errors on the latest master build @Patrick
logs
1 Like
Patrick
September 2, 2022, 9:38pm
48
Hopefully fixed in 16.0.7.4-developers-only
.
1 Like
Mycobee
September 3, 2022, 1:03am
49
Thank you. It seems as though this fixed the issues.
I am back to this weird mount issue, and would love some input.
logs
The error:
$ sudo --non-interactive umount /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image
umount: /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image: target is busy.
The system being mounted:
$ df -h | grep -i derivative
/dev/mapper/loop0p1 98G 2.8G 91G 4% /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image
Processes running:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 99556 5560 ? Ss Aug31 0:12 /sbin/init
root 2 0.0 0.0 0 0 ? S Aug31 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Aug31 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Aug31 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< Aug31 0:00 [kworker/0:0H-events_highpri]
root 8 0.0 0.0 0 0 ? I< Aug31 0:13 [kworker/0:1H-events_highpri]
root 9 0.0 0.0 0 0 ? I< Aug31 0:00 [mm_percpu_wq]
root 10 0.0 0.0 0 0 ? S Aug31 0:00 [rcu_tasks_rude_]
root 11 0.0 0.0 0 0 ? S Aug31 0:00 [rcu_tasks_trace]
root 12 0.0 0.0 0 0 ? S Aug31 0:11 [ksoftirqd/0]
root 13 0.0 0.0 0 0 ? I Aug31 0:16 [rcu_sched]
root 14 0.0 0.0 0 0 ? S Aug31 0:01 [migration/0]
root 16 0.0 0.0 0 0 ? S Aug31 0:00 [cpuhp/0]
root 18 0.0 0.0 0 0 ? S Aug31 0:00 [kdevtmpfs]
root 19 0.0 0.0 0 0 ? I< Aug31 0:00 [netns]
root 20 0.0 0.0 0 0 ? S Aug31 0:00 [kauditd]
root 21 0.0 0.0 0 0 ? S Aug31 0:00 [khungtaskd]
root 22 0.0 0.0 0 0 ? S Aug31 0:00 [oom_reaper]
root 23 0.0 0.0 0 0 ? I< Aug31 0:00 [writeback]
root 24 0.0 0.0 0 0 ? S Aug31 0:09 [kcompactd0]
root 25 0.0 0.0 0 0 ? SN Aug31 0:00 [ksmd]
root 26 0.0 0.0 0 0 ? SN Aug31 0:00 [khugepaged]
root 44 0.0 0.0 0 0 ? I< Aug31 0:00 [kintegrityd]
root 45 0.0 0.0 0 0 ? I< Aug31 0:00 [kblockd]
root 46 0.0 0.0 0 0 ? I< Aug31 0:00 [blkcg_punt_bio]
root 47 0.0 0.0 0 0 ? I< Aug31 0:00 [edac-poller]
root 48 0.0 0.0 0 0 ? I< Aug31 0:00 [devfreq_wq]
root 50 0.0 0.0 0 0 ? S Aug31 0:06 [kswapd0]
root 51 0.0 0.0 0 0 ? I< Aug31 0:00 [kthrotld]
root 52 0.0 0.0 0 0 ? I< Aug31 0:00 [acpi_thermal_pm]
root 53 0.0 0.0 0 0 ? I< Aug31 0:00 [ipv6_addrconf]
root 63 0.0 0.0 0 0 ? I< Aug31 0:00 [kstrp]
root 66 0.0 0.0 0 0 ? I< Aug31 0:00 [zswap-shrink]
root 67 0.0 0.0 0 0 ? I< Aug31 0:00 [kworker/u3:0]
root 109 0.0 0.0 0 0 ? I< Aug31 0:00 [ata_sff]
root 110 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_0]
root 111 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_0]
root 112 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_1]
root 113 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_1]
root 115 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_2]
root 117 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_2]
root 182 0.0 0.0 0 0 ? S Aug31 0:13 [jbd2/vda1-8]
root 183 0.0 0.0 0 0 ? I< Aug31 0:00 [ext4-rsv-conver]
root 231 0.0 1.4 134824 30340 ? Ss Aug31 0:06 /lib/systemd/systemd-journald
root 294 0.0 0.0 0 0 ? I< Aug31 0:00 [cryptd]
root 326 0.0 0.0 0 0 ? I< Aug31 0:00 [ttm_swap]
root 360 0.0 0.2 8120 4880 ? Ss Aug31 0:07 /usr/sbin/haveged --Foreground --verbose=1
root 573 0.0 0.1 21336 3068 ? Ss Aug31 0:00 /lib/systemd/systemd-udevd
apt-cac+ 601 0.0 0.3 459892 7900 ? Ssl Aug31 0:02 /usr/sbin/apt-cacher-ng -c /etc/apt-cacher-ng ForeGround=1
root 604 0.0 0.0 5576 1768 ? Ss Aug31 0:00 /usr/sbin/cron -f
message+ 605 0.0 0.0 7984 1960 ? Ss Aug31 0:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root 606 0.0 0.6 1225244 12580 ? Ssl Aug31 0:00 /opt/digitalocean/bin/droplet-agent
root 608 0.0 0.1 220740 2448 ? Ssl Aug31 0:01 /usr/sbin/rsyslogd -n -iNONE
root 615 0.0 0.1 13680 3064 ? Ss Aug31 0:01 /lib/systemd/systemd-logind
_chrony 627 0.0 0.1 18968 2276 ? S Aug31 0:00 /usr/sbin/chronyd -F 1
root 628 0.0 0.0 2812 1152 tty1 Ss+ Aug31 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root 629 0.0 0.0 4336 1400 ttyS0 Ss+ Aug31 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttyS0 vt220
_chrony 630 0.0 0.0 10776 1920 ? S Aug31 0:00 /usr/sbin/chronyd -F 1
root 632 0.0 0.2 13296 4308 ? Ss Aug31 0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 633 0.0 0.5 106124 11012 ? Ssl Aug31 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root 1267 0.0 0.4 288416 9976 ? Ssl Aug31 0:01 /usr/libexec/packagekitd
root 1271 0.0 0.2 233444 5044 ? Ssl Aug31 0:00 /usr/libexec/polkitd --no-debug
root 135422 0.0 0.0 0 0 ? I< Sep02 0:00 [iprt-VBoxWQueue]
ansible 184556 0.0 0.1 15252 3884 ? Ss 00:00 0:01 /lib/systemd/systemd --user
ansible 184557 0.0 0.1 102276 2996 ? S 00:00 0:00 (sd-pam)
root 185769 0.0 0.2 14220 4448 ? Ss 00:01 0:00 sshd: ansible [priv]
ansible 185776 0.0 0.2 15464 4428 ? S 00:01 0:03 sshd: ansible@pts/1
ansible 185777 0.0 0.2 7080 4612 pts/1 Ss 00:01 0:00 -bash
root 270187 0.1 0.0 0 0 ? I 00:20 0:02 [kworker/0:3-events]
root 334178 0.0 0.0 0 0 ? I 00:38 0:00 [kworker/0:1-events]
root 340479 0.9 0.0 0 0 ? S< 00:39 0:12 [loop0]
root 340481 0.0 0.0 0 0 ? I< 00:39 0:00 [kdmflush]
root 340499 0.1 0.0 0 0 ? S 00:39 0:02 [jbd2/dm-0-8]
root 340500 0.0 0.0 0 0 ? I< 00:39 0:00 [ext4-rsv-conver]
root 383805 0.0 0.0 0 0 ? I 00:45 0:00 [kworker/u2:0-flush-254:0]
root 385028 0.0 0.0 0 0 ? I 00:52 0:00 [kworker/u2:1-events_unbound]
ansible 385050 0.0 0.1 8592 3188 pts/1 R+ 01:00 0:00 ps aux
1 Like
Mycobee
September 3, 2022, 1:08am
50
They are always posted as the artifacts of the build, so on my fork Mycobee/derivative-maker
you can go to the actions folder and see the logs for each run.
Also, here is sudo ps aux
per request
$ sudo ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 99556 5560 ? Ss Aug31 0:12 /sbin/init
root 2 0.0 0.0 0 0 ? S Aug31 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Aug31 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Aug31 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< Aug31 0:00 [kworker/0:0H-events_highpri]
root 8 0.0 0.0 0 0 ? I< Aug31 0:13 [kworker/0:1H-events_highpri]
root 9 0.0 0.0 0 0 ? I< Aug31 0:00 [mm_percpu_wq]
root 10 0.0 0.0 0 0 ? S Aug31 0:00 [rcu_tasks_rude_]
root 11 0.0 0.0 0 0 ? S Aug31 0:00 [rcu_tasks_trace]
root 12 0.0 0.0 0 0 ? S Aug31 0:11 [ksoftirqd/0]
root 13 0.0 0.0 0 0 ? I Aug31 0:16 [rcu_sched]
root 14 0.0 0.0 0 0 ? S Aug31 0:01 [migration/0]
root 16 0.0 0.0 0 0 ? S Aug31 0:00 [cpuhp/0]
root 18 0.0 0.0 0 0 ? S Aug31 0:00 [kdevtmpfs]
root 19 0.0 0.0 0 0 ? I< Aug31 0:00 [netns]
root 20 0.0 0.0 0 0 ? S Aug31 0:00 [kauditd]
root 21 0.0 0.0 0 0 ? S Aug31 0:00 [khungtaskd]
root 22 0.0 0.0 0 0 ? S Aug31 0:00 [oom_reaper]
root 23 0.0 0.0 0 0 ? I< Aug31 0:00 [writeback]
root 24 0.0 0.0 0 0 ? S Aug31 0:09 [kcompactd0]
root 25 0.0 0.0 0 0 ? SN Aug31 0:00 [ksmd]
root 26 0.0 0.0 0 0 ? SN Aug31 0:00 [khugepaged]
root 44 0.0 0.0 0 0 ? I< Aug31 0:00 [kintegrityd]
root 45 0.0 0.0 0 0 ? I< Aug31 0:00 [kblockd]
root 46 0.0 0.0 0 0 ? I< Aug31 0:00 [blkcg_punt_bio]
root 47 0.0 0.0 0 0 ? I< Aug31 0:00 [edac-poller]
root 48 0.0 0.0 0 0 ? I< Aug31 0:00 [devfreq_wq]
root 50 0.0 0.0 0 0 ? S Aug31 0:06 [kswapd0]
root 51 0.0 0.0 0 0 ? I< Aug31 0:00 [kthrotld]
root 52 0.0 0.0 0 0 ? I< Aug31 0:00 [acpi_thermal_pm]
root 53 0.0 0.0 0 0 ? I< Aug31 0:00 [ipv6_addrconf]
root 63 0.0 0.0 0 0 ? I< Aug31 0:00 [kstrp]
root 66 0.0 0.0 0 0 ? I< Aug31 0:00 [zswap-shrink]
root 67 0.0 0.0 0 0 ? I< Aug31 0:00 [kworker/u3:0]
root 109 0.0 0.0 0 0 ? I< Aug31 0:00 [ata_sff]
root 110 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_0]
root 111 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_0]
root 112 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_1]
root 113 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_1]
root 115 0.0 0.0 0 0 ? S Aug31 0:00 [scsi_eh_2]
root 117 0.0 0.0 0 0 ? I< Aug31 0:00 [scsi_tmf_2]
root 182 0.0 0.0 0 0 ? S Aug31 0:13 [jbd2/vda1-8]
root 183 0.0 0.0 0 0 ? I< Aug31 0:00 [ext4-rsv-conver]
root 231 0.0 1.5 134824 30736 ? Ss Aug31 0:06 /lib/systemd/systemd-journald
root 294 0.0 0.0 0 0 ? I< Aug31 0:00 [cryptd]
root 326 0.0 0.0 0 0 ? I< Aug31 0:00 [ttm_swap]
root 360 0.0 0.2 8120 4880 ? Ss Aug31 0:07 /usr/sbin/haveged --Foreground --verbose=1
root 573 0.0 0.1 21336 3068 ? Ss Aug31 0:00 /lib/systemd/systemd-udevd
apt-cac+ 601 0.0 0.3 459892 7900 ? Ssl Aug31 0:02 /usr/sbin/apt-cacher-ng -c /etc/apt-cacher-ng ForeGround=1
root 604 0.0 0.0 5576 1768 ? Ss Aug31 0:00 /usr/sbin/cron -f
message+ 605 0.0 0.0 7984 1960 ? Ss Aug31 0:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root 606 0.0 0.6 1225244 12580 ? Ssl Aug31 0:00 /opt/digitalocean/bin/droplet-agent
root 608 0.0 0.1 220740 2448 ? Ssl Aug31 0:01 /usr/sbin/rsyslogd -n -iNONE
root 615 0.0 0.1 13680 3064 ? Ss Aug31 0:01 /lib/systemd/systemd-logind
_chrony 627 0.0 0.1 18968 2276 ? S Aug31 0:00 /usr/sbin/chronyd -F 1
root 628 0.0 0.0 2812 1152 tty1 Ss+ Aug31 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root 629 0.0 0.0 4336 1400 ttyS0 Ss+ Aug31 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttyS0 vt220
_chrony 630 0.0 0.0 10776 1920 ? S Aug31 0:00 /usr/sbin/chronyd -F 1
root 632 0.0 0.2 13296 4308 ? Ss Aug31 0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 633 0.0 0.5 106124 11012 ? Ssl Aug31 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root 1267 0.0 0.4 288416 9976 ? Ssl Aug31 0:01 /usr/libexec/packagekitd
root 1271 0.0 0.2 233444 5044 ? Ssl Aug31 0:00 /usr/libexec/polkitd --no-debug
root 135422 0.0 0.0 0 0 ? I< Sep02 0:00 [iprt-VBoxWQueue]
ansible 184556 0.0 0.1 15252 3884 ? Ss 00:00 0:01 /lib/systemd/systemd --user
ansible 184557 0.0 0.1 102276 2996 ? S 00:00 0:00 (sd-pam)
root 185769 0.0 0.2 14220 4448 ? Ss 00:01 0:00 sshd: ansible [priv]
ansible 185776 0.0 0.2 15464 4428 ? S 00:01 0:03 sshd: ansible@pts/1
ansible 185777 0.0 0.2 7080 4636 pts/1 Ss 00:01 0:00 -bash
root 270187 0.1 0.0 0 0 ? I 00:20 0:03 [kworker/0:3-events]
root 334178 0.0 0.0 0 0 ? I 00:38 0:00 [kworker/0:1-events]
root 340479 0.7 0.0 0 0 ? S< 00:39 0:12 [loop0]
root 340481 0.0 0.0 0 0 ? I< 00:39 0:00 [kdmflush]
root 340499 0.1 0.0 0 0 ? S 00:39 0:02 [jbd2/dm-0-8]
root 340500 0.0 0.0 0 0 ? I< 00:39 0:00 [ext4-rsv-conver]
root 383805 0.0 0.0 0 0 ? I 00:45 0:00 [kworker/u2:0-flush-254:0]
root 385028 0.0 0.0 0 0 ? I 00:52 0:00 [kworker/u2:1-events_unbound]
root 385055 0.0 0.0 0 0 ? I 01:05 0:00 [kworker/u2:2-flush-254:0]
root 385058 0.0 0.0 0 0 ? I 01:06 0:00 [kworker/u2:3]
root 385059 0.0 0.2 9280 4756 pts/1 S+ 01:06 0:00 sudo ps aux
1 Like
Mycobee
September 3, 2022, 1:10am
51
This issue with umount
was occuring later in the build process, a few tags ago
1 Like
Mycobee
September 3, 2022, 1:18am
52
More things
The below command returns nothing
$ sudo lsof /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image/
1 Like
Mycobee
September 3, 2022, 1:24am
53
I think I may have narrowed down the culprit. Some sort of loopback device backing file is created on the VPS, perhaps by Digital Ocean.
$ sudo losetup -a
/dev/loop0: [65025]:1312791 (/home/ansible/derivative-binary/85e3ae26a1fa287badd3957b88fa03bbe1b7205a/Whonix-Gateway-XFCE-85e3ae26a1fa287badd3957b88fa03bbe1b7205a.Intel_AMD64.raw)
1 Like
Patrick
September 3, 2022, 9:14pm
54
Can you unmount /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image somehow?
Mycobee:
Processes running:
$ ps aux
That’s quite a lot. I don’t know all of them.
Which distribution was used? Possible to start with Debian minimal as a build system?
That’s just to lower the amount of daemons that might do something inside the newly mounted folder which then prevents unmounting it.
That is supposed to be unmounted during help-steps/unmount-raw
. The command unmounting it should look similar to…
sudo kpartx -d -s -v "/home/ansible/derivative-binary/85e3ae26a1fa287badd3957b88fa03bbe1b7205a/Whonix-Gateway-XFCE-85e3ae26a1fa287badd3957b88fa03bbe1b7205a.Intel_AMD64.raw" ; echo $?
But above command won’t work without a prior unmount:
sudo umount /home/ansible/derivative-binary/Whonix-Gateway-XFCE_image
Which is broken.
So the proper order which is already implemented by the build script is:
kpartx loop
mount
umount
kpartx unloop
Mycobee:
I think I may have narrowed down the culprit. Some sort of loopback device backing file is created on the VPS, perhaps by Digital Ocean.
$ sudo losetup -a
/dev/loop0: [65025]:1312791 (/home/ansible/derivative-binary/85e3ae26a1fa287badd3957b88fa03bbe1b7205a/Whonix-Gateway-XFCE-85e3ae26a1fa287badd3957b88fa03bbe1b7205a.Intel_AMD64.raw)
So I think the loop device is created by the build script. Unfortunately it seems unavoidable to create a loop device for the purpose of building a raw image which contains a bootable operating system.
I’ll create a build locally now and check if there are any stray / leftover loop devices. But I guess not.
Investigating the latest build log, it seems that build step 1300_create-raw-image
is already failing.
build-steps.d/1300_create-raw-image
Mycobee:
logs
Broken link. But I just found it under actions.
https://github.com/Mycobee/derivative-maker/actions
Patrick
September 3, 2022, 9:15pm
55
A server reboot might be required to get rid of the stray loop device. Maybe it’s from a previous bugged state of the build script and now fixed.
1 Like
Patrick
September 3, 2022, 9:18pm
56
The build script by the way isn’t a big monolithic blob that always takes ages until some issue happens. To ease debugging, it’s step based. Each step can be more or less independently from other steps.
(Of course some steps depend on others. For example 1300_create-raw-image cannot be done before 1700_install-packages.)
Would it help if I’d provide some easier test cases to reproduce this very issue faster so debugging gets faster and thereby hopefully easier?
1 Like
Patrick
September 3, 2022, 9:23pm
57
One thing is for sure: If a previous build failed, if there is already a stray loop device then a subsequent build has a high chance to fail. I’ll add a check to the build script now to test for such situations and abort early.
As for build https://github.com/Mycobee/derivative-maker/actions/runs/2982494928 already 1300_create-raw-image
was failing. That is purely using grml-debootstrap. A standalone tool where we just pass environment variables and command line options.
At that point in time in the build script, we don’t use any related help-steps such as mount-raw, unmount-raw, chroot-raw, unchroot-raw or umount_kill.sh. So chances are low that there is something wrong with the build scirpt logic to mount / unmount.
I’ll come up with instructions for a simplified test case to get to the bottom of the mount / umount soon.
Patrick
September 3, 2022, 9:50pm
58
Build script now check for stray loop devices and aborts if there are any as this would likely cause strange follow up issues.
So a primary development goal of mine for the build script is to avoid stray loop devices at all cost. But once they exist, the safest way to get rid of them is probably a reboot. Otherwise the build script attempting to unmount things which itself might not have created could lead to unexpected results by the user.
Here are the simplified steps just to get to the grml-deboostrap
base raw image creation step.
(Skipping package creation. Therefore it’s fast and probably saying a lot of time.)
args="--flavor whonix-gateway-xfce --target virtualbox --build --allow-untagged true"
./build-steps.d/1100_sanity-tests $args
./build-steps.d/1120_prepare-build-machine $args
./build-steps.d/1300_create-raw-image $args
This could even be run manually. No need to automate in CI (just yet). Just until we get closer to what is causing this. A build script issue (less likely since until this stage it’s pretty simple build steps) or some other issue which even happens with relatively simpler tools such as grml-debootstrap…
Patrick
September 3, 2022, 9:52pm
59
From the build log:
+ grep -q /dev/mapper/loop0p1 /proc/mounts
+ eerror '/dev/mapper/loop0p1 already mounted, exiting to avoid possible damage. (Manually unmount /dev/mapper/loop0p1)'
So by the time grml-debootstrap was running, /dev/mapper/loop0p1 was already existing. So this could be a follow-up issue from a previous unclean run of the build script. In that case, this very error should be resolved after reboot.
Mycobee
September 4, 2022, 2:41am
60
You are awesome @Patrick
Thanks so much for the help. Just got back from a big day climbing in the mountains but will dive in to all of this when I have the energy
1 Like