Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MTL-1590 Wait to Mark SQFSRAID as Ready #20

Merged
merged 1 commit into from
Dec 23, 2021

Conversation

rustydb
Copy link
Contributor

@rustydb rustydb commented Dec 23, 2021

Summary and Scope

Issue Type
  • Bugfix Pull Request

This resolves a race condition that is witnessed when dracut find our stoeage array before it has been populated with artifacts. That circumstance triggers an early, false postive failure.

This change ceases labeling the SQFS storage array before we have a chance to populate
it with artifacts. Therefore dracut must wait.

Once populated, apply the FSLabel given from the sqfs_drive_authority
(default: SQFSRAID).

Output from a worker booting, starting at the creation of the SQFSRAID array but without the FSLabel:

[   16.966329] dracut-initqueue[1500]: + mkfs.vfat -F32 -n BOOTRAID /dev/md/BOOT
[   16.982330] dracut-initqueue[1500]: + mkfs.xfs -f /dev/md/SQFS
[   16.998332] dracut-initqueue[1500]: + echo 1
[   17.014341] dracut-initqueue[1500]: + info 'SquashFS storage is ready...'
[   17.030329] dracut-initqueue[1500]: + echo 'SquashFS storage is ready...'
[   17.046329] dracut-initqueue[1500]: + '[' '!' -f /tmp/metalovalimg.done ']'
[   17.062328] dracut-initqueue[1500]: + add_overlayfs
[   17.078327] dracut-initqueue[1500]: + '[' -f /tmp/metalovalimg.done ']'
[   17.094333] dracut-initqueue[1500]: + '[' -f /tmp/metalovaldisk.done ']'
[   17.110328] dracut-initqueue[1500]: + make_raid_overlay
[   17.126328] dracut-initqueue[1500]: + _trip_udev
[   17.142325] dracut-initqueue[1500]: + udevadm settle
[   17.158326] dracut-initqueue[1500]: + blkid -s UUID -o value /dev/disk/by-label/ROOTRAID
[   17.174327] dracut-initqueue[1500]: + local oval_raid_parts=
[   17.190327] dracut-initqueue[1500]: + local aux_raid_parts=
[   17.206327] dracut-initqueue[1500]: + local oval_end=175
[   17.222335] dracut-initqueue[1500]: + local aux_end=325
[   17.238328] dracut-initqueue[1500]: + for disk in $md_disks
[   17.254332] dracut-initqueue[1500]: + parted --wipesignatures --align=opt -m --ignore-busy -s /dev/sda mkpart primary xfs 25GB 175GB
[   17.274336] dracut-initqueue[1500]: + parted --wipesignatures --align=opt -m --ignore-busy -s /dev/sda mkpart primary 175GB 325GB
[   17.294485] dracut-initqueue[1652]: ++ trim
[   17.306324] dracut-initqueue[1652]: ++ local var=
[   17.322315] dracut-initqueue[1652]: ++ var=
[   17.334315] dracut-initqueue[1652]: ++ var=
[   17.346316] dracut-initqueue[1652]: ++ printf %s ''
[   17.362348] dracut-initqueue[1500]: + oval_raid_parts=' /dev/sda3'
[   17.378450] dracut-initqueue[1653]: ++ trim
[   17.390320] dracut-initqueue[1653]: ++ local var=
[   17.406323] dracut-initqueue[1653]: ++ var=
[   17.418317] dracut-initqueue[1653]: ++ var=
[   17.430315] dracut-initqueue[1653]: ++ printf %s ''
[   17.446341] dracut-initqueue[1500]: + aux_raid_parts=' /dev/sda4'
[   17.462837] dracut-initqueue[1500]: + for disk in $md_disks
[   17.478333] dracut-initqueue[1500]: + parted --wipesignatures --align=opt -m --ignore-busy -s /dev/sdb mkpart primary xfs 25GB 175GB
[   17.498332] dracut-initqueue[1500]: + parted --wipesignatures --align=opt -m --ignore-busy -s /dev/sdb mkpart primary 175GB 325GB
[   17.518456] dracut-initqueue[1659]: ++ trim /dev/sda3
[   17.534342] dracut-initqueue[1659]: ++ local var=/dev/sda3
[   17.550329] dracut-initqueue[1659]: ++ var=/dev/sda3
[   17.566318] dracut-initqueue[1659]: ++ var=/dev/sda3
[   17.582316] dracut-initqueue[1659]: ++ printf %s /dev/sda3
[   17.598363] dracut-initqueue[1500]: + oval_raid_parts='/dev/sda3 /dev/sdb3'
[   17.614462] dracut-initqueue[1660]: ++ trim /dev/sda4
[   17.630323] dracut-initqueue[1660]: ++ local var=/dev/sda4
[   17.646318] dracut-initqueue[1660]: ++ var=/dev/sda4
[   17.662317] dracut-initqueue[1660]: ++ var=/dev/sda4
[   17.678316] dracut-initqueue[1660]: ++ printf %s /dev/sda4
[   17.694348] dracut-initqueue[1500]: + aux_raid_parts='/dev/sda4 /dev/sdb4'
[   17.710338] dracut-initqueue[1500]: + mdadm --create /dev/md/ROOT --assume-clean --run --verbose --metadata=1.2 --level=mirror --raid-devices=2 /dev/sda3 /dev/sdb3
[   17.734450] dracut-initqueue[1662]: mdadm: size set to 146352128K
[   17.750323] dracut-initqueue[1662]: mdadm: automatically enabling write-intent bitmap on large array
[   17.770320] dracut-initqueue[1662]: mdadm: array /dev/md/ROOT started.
[   17.786339] dracut-initqueue[1500]: + mdadm --create /dev/md/AUX --assume-clean --run --verbose --metadata=1.2 --level=stripe --raid-devices=2 /dev/sda4 /dev/sdb4
[   17.810448] dracut-initqueue[1676]: mdadm: chunk size defaults to 512K
[   17.826323] dracut-initqueue[1676]: mdadm: array /dev/md/AUX started.
[   17.842342] dracut-initqueue[1500]: + _trip_udev
[   17.858335] dracut-initqueue[1500]: + udevadm settle
[   17.874330] dracut-initqueue[1500]: + mkfs.xfs -f -L ROOTRAID /dev/md/ROOT
[   18.356299] dracut-initqueue[1500]: + echo 1
[   18.374334] dracut-initqueue[1500]: + info 'Overlay storage is ready ...'
[   18.394327] dracut-initqueue[1500]: + echo 'Overlay storage is ready ...'
[   18.410330] dracut-initqueue[1500]: + local mpoint=/metal/ovaldisk
[   18.430329] dracut-initqueue[1500]: + mkdir -p /metal/ovaldisk
[   18.450346] dracut-initqueue[1500]: + mount -n -t xfs /dev/disk/by-label/ROOTRAID /metal/ovaldisk
[   18.487958] dracut-initqueue[1500]: + '[' -z '' ']'
[   18.502549] dracut-initqueue[1747]: ++ _overlayFS_path_spec
[   18.518337] dracut-initqueue[1747]: ++ '[' -b /dev/disk/by-label/SQFSRAID ']'
[   18.535008] dracut-initqueue[1748]: +++ blkid -s UUID -o value /dev/md/SQFS
[   18.554355] dracut-initqueue[1747]: ++ echo overlay-SQFSRAID-3c5ed031-1afd-4d5f-b1b3-156c7d9ad4b4
[   18.574363] dracut-initqueue[1500]: + metal_overlayfs_id=overlay-SQFSRAID-3c5ed031-1afd-4d5f-b1b3-156c7d9ad4b4
[   18.598346] dracut-initqueue[1500]: + mkdir -m 0755 -p /metal/ovaldisk/LiveOS/overlay-SQFSRAID-3c5ed031-1afd-4d5f-b1b3-156c7d9ad4b4 /metal/ovaldisk/LiveOS/overlay-SQFSRAID-3c5ed031-1afd-4d5f-b1b3-156c7d9ad4b4/../ovlwork
[   18.626332] dracut-initqueue[1500]: + echo 1
[   18.642333] dracut-initqueue[1500]: + info 'OverlayFS is ready ...'
[   18.658333] dracut-initqueue[1500]: + echo 'OverlayFS is ready ...'
[   18.678335] dracut-initqueue[1500]: + umount /metal/ovaldisk
[   18.694342] dracut-initqueue[1500]: + '[' '!' -f /tmp/metalsqfsimg.done ']'
[   18.710335] dracut-initqueue[1500]: + add_sqfs
[   18.730337] dracut-initqueue[1500]: + '[' live:LABEL=SQFSRAID = kdump ']'
[   18.750332] dracut-initqueue[1500]: + local sqfs_store=/tmp/squashfs
[   18.770330] dracut-initqueue[1500]: + '[' http '!=' file ']'
[   18.790330] dracut-initqueue[1500]: + tmp1=pit/ncn-w001
[   18.806338] dracut-initqueue[1500]: + tmp2=pit
[   18.822329] dracut-initqueue[1500]: + uri_host=pit
[   18.838340] dracut-initqueue[1500]: + ping -c 5 pit
[   18.854334] dracut-initqueue[1500]: + warn 'Failed to ping URI host, pit, will retry later'
[   18.870337] dracut-initqueue[1500]: + echo 'Warning: Failed to ping URI host, pit, will retry later'
[   18.890332] dracut-initqueue[1500]: Warning: Failed to ping URI host, pit, will retry later
[   18.906334] dracut-initqueue[1500]: + return 1
[   18.926329] dracut-initqueue[1500]: + '[' -n LABEL=ROOTRAID ']'
[   18.942333] dracut-initqueue[1500]: + '[' -f /tmp/metalsqfsdisk.done ']'
[   18.958334] dracut-initqueue[1500]: + '[' -f /tmp/metalsqfsimg.done ']'
[   31.789941] dracut-initqueue[1859]: ls: cannot access '/tmp/leaseinfo.hsn0*': No such file or directory
[   45.142724] dracut-initqueue[2049]: wicked: bond0: Request to acquire DHCPv4 lease with UUID 26e6c461-4375-0e00-0108-000001000000
[   45.194408] dracut-initqueue[2049]: wicked: unable to send dhcp packet: No buffer space available
[   50.486907] dracut-initqueue[2049]: wicked: bond0: Committed DHCPv4 lease with address 10.1.1.5 (lease time 1200 sec, renew in 600 sec, rebind in 1050 sec)
[   50.601149] dracut-initqueue[2073]: ++ type getarg
[   50.618345] dracut-initqueue[2073]: ++ type metal_die
[   50.634467] dracut-initqueue[2075]: +++ getarg initrd=
[   50.650326] dracut-initqueue[2075]: +++ debug_off
[   50.666320] dracut-initqueue[2075]: +++ set +x
[   50.682349] dracut-initqueue[2073]: ++ initrd=initrd.img.xz
[   50.702333] dracut-initqueue[2073]: ++ '[' -z initrd.img.xz ']'
[   50.722597] dracut-initqueue[2077]: +++ getargnum 25 25 100 metal.sqfs-md-size
[   50.742323] dracut-initqueue[2077]: +++ local _b
[   50.762320] dracut-initqueue[2077]: +++ unset _b
[   50.782316] dracut-initqueue[2077]: +++ local _default _min _max
[   50.798315] dracut-initqueue[2077]: +++ _default=25
[   50.818316] dracut-initqueue[2077]: +++ shift
[   50.838317] dracut-initqueue[2077]: +++ _min=25
[   50.858316] dracut-initqueue[2077]: +++ shift
[   50.874314] dracut-initqueue[2077]: +++ _max=100
[   50.890323] dracut-initqueue[2077]: +++ shift
[   50.906473] dracut-initqueue[2078]: ++++ getarg metal.sqfs-md-size
[   50.922330] dracut-initqueue[2078]: ++++ debug_off
[   50.938317] dracut-initqueue[2078]: ++++ set +x
[   50.954353] dracut-initqueue[2077]: +++ _b=
[   50.966317] dracut-initqueue[2077]: +++ '[' 1 -ne 0 -a -z '' ']'
[   50.982316] dracut-initqueue[2077]: +++ _b=25
[   50.998316] dracut-initqueue[2077]: +++ '[' -n 25 ']'
[   51.014317] dracut-initqueue[2077]: +++ isdigit 25
[   51.030316] dracut-initqueue[2077]: +++ case "$1" in
[   51.046316] dracut-initqueue[2077]: +++ return 0
[   51.062315] dracut-initqueue[2077]: +++ _b=25
[   51.078322] dracut-initqueue[2077]: +++ '[' 25 -ge 25 ']'
[   51.094318] dracut-initqueue[2077]: +++ '[' 25 -le 100 ']'
[   51.110316] dracut-initqueue[2077]: +++ echo 25
[   51.126315] dracut-initqueue[2077]: +++ return
[   51.142336] dracut-initqueue[2073]: ++ metal_sqfs_size_end=25
[   51.158483] dracut-initqueue[2080]: +++ getargnum 150 25 200 metal.oval-md-size
[   51.174323] dracut-initqueue[2080]: +++ local _b
[   51.190316] dracut-initqueue[2080]: +++ unset _b
[   51.206316] dracut-initqueue[2080]: +++ local _default _min _max
[   51.222316] dracut-initqueue[2080]: +++ _default=150
[   51.238316] dracut-initqueue[2080]: +++ shift
[   51.254322] dracut-initqueue[2080]: +++ _min=25
[   51.270315] dracut-initqueue[2080]: +++ shift
[   51.286316] dracut-initqueue[2080]: +++ _max=200
[   51.302317] dracut-initqueue[2080]: +++ shift
[   51.318443] dracut-initqueue[2081]: ++++ getarg metal.oval-md-size
[   51.334327] dracut-initqueue[2081]: ++++ debug_off
[   51.350316] dracut-initqueue[2081]: ++++ set +x
[   51.366344] dracut-initqueue[2080]: +++ _b=
[   51.378315] dracut-initqueue[2080]: +++ '[' 1 -ne 0 -a -z '' ']'
[   51.394315] dracut-initqueue[2080]: +++ _b=150
[   51.410315] dracut-initqueue[2080]: +++ '[' -n 150 ']'
[   51.426316] dracut-initqueue[2080]: +++ isdigit 150
[   51.442322] dracut-initqueue[2080]: +++ case "$1" in
[   51.458316] dracut-initqueue[2080]: +++ return 0
[   51.474315] dracut-initqueue[2080]: +++ _b=150
[   51.490316] dracut-initqueue[2080]: +++ '[' 150 -ge 25 ']'
[   51.506318] dracut-initqueue[2080]: +++ '[' 150 -le 200 ']'
[   51.522315] dracut-initqueue[2080]: +++ echo 150
[   51.538316] dracut-initqueue[2080]: +++ return
[   51.554364] dracut-initqueue[2073]: ++ overlay_size_end=150
[   51.570465] dracut-initqueue[2083]: +++ getargnum 150 0 200 metal.aux-md-size
[   51.586328] dracut-initqueue[2083]: +++ local _b
[   51.602317] dracut-initqueue[2083]: +++ unset _b
[   51.618322] dracut-initqueue[2083]: +++ local _default _min _max
[   51.634317] dracut-initqueue[2083]: +++ _default=150
[   51.650315] dracut-initqueue[2083]: +++ shift
[   51.666315] dracut-initqueue[2083]: +++ _min=0
[   51.682315] dracut-initqueue[2083]: +++ shift
[   51.698316] dracut-initqueue[2083]: +++ _max=200
[   51.714315] dracut-initqueue[2083]: +++ shift
[   51.730438] dracut-initqueue[2084]: ++++ getarg metal.aux-md-size
[   51.746322] dracut-initqueue[2084]: ++++ debug_off
[   51.762316] dracut-initqueue[2084]: ++++ set +x
[   51.778346] dracut-initqueue[2083]: +++ _b=
[   51.790317] dracut-initqueue[2083]: +++ '[' 1 -ne 0 -a -z '' ']'
[   51.806323] dracut-initqueue[2083]: +++ _b=150
[   51.822315] dracut-initqueue[2083]: +++ '[' -n 150 ']'
[   51.838316] dracut-initqueue[2083]: +++ isdigit 150
[   51.854315] dracut-initqueue[2083]: +++ case "$1" in
[   51.870316] dracut-initqueue[2083]: +++ return 0
[   51.886314] dracut-initqueue[2083]: +++ _b=150
[   51.902314] dracut-initqueue[2083]: +++ '[' 150 -ge 0 ']'
[   51.918316] dracut-initqueue[2083]: +++ '[' 150 -le 200 ']'
[   51.934315] dracut-initqueue[2083]: +++ echo 150
[   51.950314] dracut-initqueue[2083]: +++ return
[   51.966704] dracut-initqueue[2073]: ++ auxillary_size_end=150
[   51.982477] dracut-initqueue[2086]: +++ getarg metal.md-level=
[   51.998322] dracut-initqueue[2086]: +++ debug_off
[   52.014317] dracut-initqueue[2086]: +++ set +x
[   52.030339] dracut-initqueue[2073]: ++ metal_mdlevel=
[   52.050328] dracut-initqueue[2073]: ++ '[' -z '' ']'
[   52.066328] dracut-initqueue[2073]: ++ metal_mdlevel=mirror
[   52.082327] dracut-initqueue[2073]: ++ mdadm_raid_devices=--raid-devices=2
[   52.098329] dracut-initqueue[2073]: ++ '[' 2 = 1 ']'
[   52.114445] dracut-initqueue[2088]: +++ getarg rd.live.dir -d live_dir
[   52.130320] dracut-initqueue[2088]: +++ debug_off
[   52.146322] dracut-initqueue[2088]: +++ set +x
[   52.162337] dracut-initqueue[2073]: ++ live_dir=
[   52.178328] dracut-initqueue[2073]: ++ '[' -z '' ']'
[   52.194327] dracut-initqueue[2073]: ++ live_dir=LiveOS
[   52.210445] dracut-initqueue[2091]: +++ getarg rd.live.squashimg=
[   52.226320] dracut-initqueue[2091]: +++ debug_off
[   52.242315] dracut-initqueue[2091]: +++ set +x
[   52.258375] dracut-initqueue[2073]: ++ squashfs_file=filesystem.squashfs
[   52.274331] dracut-initqueue[2073]: ++ '[' -z filesystem.squashfs ']'
[   52.290328] dracut-initqueue[2073]: ++ '[' filesystem.squashfs = .squashfs ']'
[   52.306335] dracut-initqueue[2073]: ++ [[ -n http://pit/ncn-w001 ]]
[   52.322330] dracut-initqueue[2073]: ++ IFS=:
[   52.338326] dracut-initqueue[2073]: ++ read -ra ADDR
[   52.354326] dracut-initqueue[2073]: ++ metal_uri_scheme=http
[   52.370328] dracut-initqueue[2073]: ++ metal_uri_authority=//pit/ncn-w001
[   52.386327] dracut-initqueue[2073]: ++ '[' -z http ']'
[   52.402325] dracut-initqueue[2073]: ++ '[' -z //pit/ncn-w001 ']'
[   52.418326] dracut-initqueue[2073]: ++ metal_local_dir=//pit/ncn-w001
[   52.434328] dracut-initqueue[2073]: ++ metal_local_url=http://pit/ncn-w001
[   52.450334] dracut-initqueue[2073]: ++ metal_local_url_authority=http://pit/ncn-w001
[   52.466454] dracut-initqueue[2093]: +++ getarg rootfallback=
[   52.482327] dracut-initqueue[2093]: +++ debug_off
[   52.498316] dracut-initqueue[2093]: +++ set +x
[   52.514365] dracut-initqueue[2073]: ++ boot_fallback=LABEL=BOOTRAID
[   52.530330] dracut-initqueue[2073]: ++ boot_drive_scheme=LABEL
[   52.546334] dracut-initqueue[2073]: ++ '[' -z LABEL ']'
[   52.562328] dracut-initqueue[2073]: ++ boot_drive_authority=BOOTRAID
[   52.582328] dracut-initqueue[2073]: ++ '[' -z BOOTRAID ']'
[   52.598327] dracut-initqueue[2073]: ++ case $boot_drive_scheme in
[   52.614327] dracut-initqueue[2073]: ++ info 'bootloader will be located on  LABEL=BOOTRAID'
[   52.630329] dracut-initqueue[2073]: ++ echo 'bootloader will be located on  LABEL=BOOTRAID'
[   52.646453] dracut-initqueue[2095]: +++ getarg root
[   52.662327] dracut-initqueue[2095]: +++ debug_off
[   52.678316] dracut-initqueue[2095]: +++ set +x
[   52.694360] dracut-initqueue[2073]: ++ root=live:LABEL=SQFSRAID
[   52.710330] dracut-initqueue[2073]: ++ case "$root" in
[   52.726329] dracut-initqueue[2073]: ++ sqfs_drive_url=LABEL=SQFSRAID
[   52.742327] dracut-initqueue[2073]: ++ sqfs_drive_spec=LABEL=SQFSRAID
[   52.758329] dracut-initqueue[2073]: ++ export sqfs_drive_scheme=LABEL
[   52.774327] dracut-initqueue[2073]: ++ sqfs_drive_scheme=LABEL
[   52.790327] dracut-initqueue[2073]: ++ export sqfs_drive_authority=SQFSRAID
[   52.806334] dracut-initqueue[2073]: ++ sqfs_drive_authority=SQFSRAID
[   52.826328] dracut-initqueue[2073]: ++ '[' LABEL = CDLABEL ']'
[   52.842326] dracut-initqueue[2073]: ++ sqfs_drive_scheme=LABEL
[   52.858326] dracut-initqueue[2073]: ++ '[' -z SQFSRAID ']'
[   52.874328] dracut-initqueue[2073]: ++ case $sqfs_drive_scheme in
[   52.890328] dracut-initqueue[2073]: ++ info 'SquashFS file is on LABEL=SQFSRAID'
[   52.906329] dracut-initqueue[2073]: ++ echo 'SquashFS file is on LABEL=SQFSRAID'
[   52.922328] dracut-initqueue[2073]: ++ IFS==
[   52.938335] dracut-initqueue[2073]: ++ read -ra ADDR
[   52.954334] dracut-initqueue[2073]: ++ oval_drive_scheme=LABEL
[   52.970821] dracut-initqueue[2073]: ++ oval_drive_authority=ROOTRAID
[   52.986331] dracut-initqueue[2073]: ++ case "$oval_drive_scheme" in
[   53.002337] dracut-initqueue[2073]: ++ info 'Overlay is on LABEL=ROOTRAID'
[   53.018327] dracut-initqueue[2073]: ++ echo 'Overlay is on LABEL=ROOTRAID'
[   53.034327] dracut-initqueue[2073]: + /sbin/metal-md-scan
[   53.050488] dracut-initqueue[2100]: mdadm: No arrays found in config file or automatically
[   53.066359] dracut-initqueue[2073]: + '[' -z http://pit/ncn-w001 ']'
[   53.082331] dracut-initqueue[2073]: + '[' '!' -f /tmp/metalpave.done ']'
[   53.098446] dracut-initqueue[2124]: ++ lsblk -l -o SIZE,NAME,TYPE,TRAN
[   53.114449] dracut-initqueue[2125]: ++ grep -E '(sata|nvme|sas)'
[   53.130439] dracut-initqueue[2126]: ++ sort -h
[   53.146437] dracut-initqueue[2127]: ++ grep -vE 'p[0-9]+$'
[   53.162439] dracut-initqueue[2128]: ++ awk '{print $2}'
[   53.178437] dracut-initqueue[2129]: ++ head -n 2
[   53.194437] dracut-initqueue[2130]: ++ tr '\n' ' '
[   53.210436] dracut-initqueue[2131]: ++ sed 's/ *$//'
[   53.226352] dracut-initqueue[2073]: + md_disks='sda sdb'
[   53.242331] dracut-initqueue[2073]: + '[' -z 'sda sdb' ']'
[   53.258335] dracut-initqueue[2073]: + '[' '!' -f /tmp/metalsqfsdisk.done ']'
[   53.274329] dracut-initqueue[2073]: + '[' '!' -f /tmp/metalovalimg.done ']'
[   53.290328] dracut-initqueue[2073]: + '[' '!' -f /tmp/metalsqfsimg.done ']'
[   53.306328] dracut-initqueue[2073]: + add_sqfs
[   53.322328] dracut-initqueue[2073]: + '[' live:LABEL=SQFSRAID = kdump ']'
[   53.338327] dracut-initqueue[2073]: + local sqfs_store=/tmp/squashfs
[   53.354328] dracut-initqueue[2073]: + '[' http '!=' file ']'
[   53.370327] dracut-initqueue[2073]: + tmp1=pit/ncn-w001
[   53.390326] dracut-initqueue[2073]: + tmp2=pit
[   53.406334] dracut-initqueue[2073]: + uri_host=pit
[   53.422328] dracut-initqueue[2073]: + ping -c 5 pit
[   54.847558] dracut-initqueue[2073]: + info 'URI host pit responds ...'
[   54.862435] dracut-initqueue[2073]: + echo 'URI host pit responds ...'
[   54.878348] dracut-initqueue[2073]: + mkdir -pv /tmp/squashfs
[   54.898343] dracut-initqueue[2073]: + mount -n -t xfs /dev/md/SQFS /tmp/squashfs
[   54.918479] dracut-initqueue[2073]: + mkdir -pv /tmp/squashfs/LiveOS
[   54.938351] dracut-initqueue[2073]: + fetch_sqfs /tmp/squashfs/LiveOS
[   54.954344] dracut-initqueue[2073]: + '[' -f /tmp/squashfs/LiveOS/filesystem.squashfs ']'
[   54.970338] dracut-initqueue[2073]: + '[' -z http://pit/ncn-w001 ']'
[   54.990338] dracut-initqueue[2073]: + '[' http '!=' file ']'
[   55.006941] dracut-initqueue[2143]: + set -e
[   55.022342] dracut-initqueue[2143]: + cd /tmp/squashfs/LiveOS
[   55.042346] dracut-initqueue[2143]: + curl -O http://pit/ncn-w001/filesystem.squashfs
[   63.543844] dracut-initqueue[2143]: + echo 'filesystem.squashfs downloaded  ... '
[   63.562380] dracut-initqueue[2143]: + curl -O http://pit/ncn-w001/kernel
[   63.578351] dracut-initqueue[2143]: + echo 'grabbed the kernel it rode in on ... '
[   74.242725] dracut-initqueue[2143]: + curl -O http://pit/ncn-w001/initrd.img.xz
[   74.311236] dracut-initqueue[2143]: + echo 'and its initrd ... '
[   75.588724] dracut-initqueue[2073]: + '[' -f /tmp/squashfs/LiveOS/filesystem.squashfs ']'
[   75.610437] dracut-initqueue[2073]: + echo 1
[   75.630333] dracut-initqueue[2073]: + info 'Successfully downloaded boot artifacts ...'
[   75.650329] dracut-initqueue[2073]: + echo 'Successfully downloaded boot artifacts ...'
[   75.666329] dracut-initqueue[2073]: + return
[   75.682329] dracut-initqueue[2073]: + umount /tmp/squashfs
[   81.773362] dracut-initqueue[2073]: + xfs_admin -L SQFSRAID /dev/md/SQFS
[   81.790374] dracut-initqueue[2073]: + '[' -n LABEL=ROOTRAID ']'
[   81.806330] dracut-initqueue[2073]: + '[' -f /tmp/metalsqfsdisk.done ']'
[   81.826337] dracut-initqueue[2073]: + '[' -f /tmp/metalsqfsimg.done ']'
[   81.846326] dracut-initqueue[2073]: + '[' -f /tmp/metalovalimg.done ']'
[   81.862327] dracut-initqueue[2073]: + exit 0
[   82.657068] dracut-initqueue[2224]: ++ type getarg
[   82.674350] dracut-initqueue[2224]: ++ type metal_die
[   82.690468] dracut-initqueue[2226]: +++ getarg initrd=
[   82.710321] dracut-initqueue[2226]: +++ debug_off
[   82.726329] dracut-initqueue[2226]: +++ set +x
[   82.746335] dracut-initqueue[2224]: ++ initrd=initrd.img.xz
[   82.766329] dracut-initqueue[2224]: ++ '[' -z initrd.img.xz ']'
[   82.782583] dracut-initqueue[2228]: +++ getargnum 25 25 100 metal.sqfs-md-size
[   82.802325] dracut-initqueue[2228]: +++ local _b
[   82.822315] dracut-initqueue[2228]: +++ unset _b
[   82.842316] dracut-initqueue[2228]: +++ local _default _min _max
[   82.862315] dracut-initqueue[2228]: +++ _default=25
[   82.882313] dracut-initqueue[2228]: +++ shift
[   82.902316] dracut-initqueue[2228]: +++ _min=25
[   82.922385] dracut-initqueue[2228]: +++ shift
[   82.938363] dracut-initqueue[2228]: +++ _max=100
[   82.954334] dracut-initqueue[2228]: +++ shift
[   82.970665] dracut-initqueue[2229]: ++++ getarg metal.sqfs-md-size
[   82.990351] dracut-initqueue[2229]: ++++ debug_off
[   83.006342] dracut-initqueue[2229]: ++++ set +x
[   83.022485] dracut-initqueue[2228]: +++ _b=
[   83.034343] dracut-initqueue[2228]: +++ '[' 1 -ne 0 -a -z '' ']'
[   83.050330] dracut-initqueue[2228]: +++ _b=25
[   83.066332] dracut-initqueue[2228]: +++ '[' -n 25 ']'
[   83.082323] dracut-initqueue[2228]: +++ isdigit 25
[   83.102327] dracut-initqueue[2228]: +++ case "$1" in
[   83.122319] dracut-initqueue[2228]: +++ return 0
[   83.142314] dracut-initqueue[2228]: +++ _b=25
[   83.158316] dracut-initqueue[2228]: +++ '[' 25 -ge 25 ']'
[   83.174317] dracut-initqueue[2228]: +++ '[' 25 -le 100 ']'
[   83.190315] dracut-initqueue[2228]: +++ echo 25
[   83.206331] dracut-initqueue[2228]: +++ return
[   83.226473] dracut-initqueue[2224]: ++ metal_sqfs_size_end=25
[   83.242526] dracut-initqueue[2231]: +++ getargnum 150 25 200 metal.oval-md-size
[   83.262320] dracut-initqueue[2231]: +++ local _b
[   83.282325] dracut-initqueue[2231]: +++ unset _b
[   83.302315] dracut-initqueue[2231]: +++ local _default _min _max
[   83.318316] dracut-initqueue[2231]: +++ _default=150
[   83.334359] dracut-initqueue[2231]: +++ shift
[   83.350322] dracut-initqueue[2231]: +++ _min=25
[   83.370318] dracut-initqueue[2231]: +++ shift
[   83.390324] dracut-initqueue[2231]: +++ _max=200
[   83.410314] dracut-initqueue[2231]: +++ shift
[   83.430457] dracut-initqueue[2232]: ++++ getarg metal.oval-md-size
[   83.446324] dracut-initqueue[2232]: ++++ debug_off
[   83.466322] dracut-initqueue[2232]: ++++ set +x
[   83.482985] dracut-initqueue[2231]: +++ _b=
[   83.494325] dracut-initqueue[2231]: +++ '[' 1 -ne 0 -a -z '' ']'
[   83.514315] dracut-initqueue[2231]: +++ _b=150
[   83.530314] dracut-initqueue[2231]: +++ '[' -n 150 ']'
[   83.550313] dracut-initqueue[2231]: +++ isdigit 150
[   83.570322] dracut-initqueue[2231]: +++ case "$1" in
[   83.586311] dracut-initqueue[2231]: +++ return 0
[   83.602316] dracut-initqueue[2231]: +++ _b=150
[   83.622309] dracut-initqueue[2231]: +++ '[' 150 -ge 25 ']'
[   83.642313] dracut-initqueue[2231]: +++ '[' 150 -le 200 ']'
[   83.658355] dracut-initqueue[2231]: +++ echo 150
[   83.678321] dracut-initqueue[2231]: +++ return
[   83.699066] dracut-initqueue[2224]: ++ overlay_size_end=150
[   83.718829] dracut-initqueue[2234]: +++ getargnum 150 0 200 metal.aux-md-size
[   83.738328] dracut-initqueue[2234]: +++ local _b
[   83.758325] dracut-initqueue[2234]: +++ unset _b
[   83.778312] dracut-initqueue[2234]: +++ local _default _min _max
[   83.798313] dracut-initqueue[2234]: +++ _default=150
[   83.818311] dracut-initqueue[2234]: +++ shift
[   83.838314] dracut-initqueue[2234]: +++ _min=0
[   83.854314] dracut-initqueue[2234]: +++ shift
[   83.870316] dracut-initqueue[2234]: +++ _max=200
[   83.890320] dracut-initqueue[2234]: +++ shift
[   83.910856] dracut-initqueue[2235]: ++++ getarg metal.aux-md-size
[   83.930341] dracut-initqueue[2235]: ++++ debug_off
[   83.955733] dracut-initqueue[2235]: ++++ set +x
[   83.970964] dracut-initqueue[2234]: +++ _b=
[   83.986329] dracut-initqueue[2234]: +++ '[' 1 -ne 0 -a -z '' ']'

Prerequisites

  • I have included documentation in my PR (or it is not required)
  • I tested this on internal system (x) (if yes, please include results or a description of the test)

Idempotency

Risks and Mitigations

There is less risk for a dracut race condition between metal and dmsquash. dmsquash will no longer steal the SQFS storage area before it's populated, since it can't find it until the FSLabel is applied. The FSLabel is now only applied once the artifacts are pulled.

Do not label the SQFS storage array before we have a chance to populate
it with artifacts.

Once populated, apply the FSLabel given from the sqfs_drive_authority
(default: SQFSRAID).
@rustydb rustydb merged commit ba17704 into main Dec 23, 2021
@rustydb rustydb deleted the MTL-1590-order-of-operations branch December 23, 2021 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants