Re: [releng/13.0] error during installworld

From: Warner Losh <imp_at_bsdimp.com>
Date: Tue, 22 Jun 2021 13:48:49 UTC
On Tue, Jun 22, 2021, 3:20 AM Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
wrote:

> W dniu 22.06.2021 o 10:51, Yaroslav Shvets pisze:
> > Hello Marek.
> >
> > On Tue, 22 Jun 2021, 11:04, you wrote:
> >
> >> W dniu 22.06.2021 o 08:30, Yaroslav Shvets pisze:
> >>> Hello All.
> >>>
> >>> I have successfully updated os from the sources from releng/12.2 to
> >>> releng/13.0.
> >>> But when reinstalling the world from releng/13.0,
> >>> I get the error during installworld:
> >>>
> >>> installworld.log:
> >>> -- cut --
> >>> ===> stand/i386/mbr (install)
> >>> install   -o root -g wheel -m 444   mbr /boot/mbr
> >>> ===> stand/i386/pmbr (install)
> >>> install   -o root -g wheel -m 444   pmbr /boot/pmbr
> >>> ===> stand/i386/boot0 (install)
> >>> install   -o root -g wheel -m 444   boot0 /boot/boot0
> >>> ===> stand/i386/boot0sio (install)
> >>> install   -o root -g wheel -m 444   boot0 /boot/boot0sio
> >>> ===> stand/i386/boot2 (install)
> >>> btxld -v -E 0x2000 -f bin -b
> >>> /usr/obj/usr/src/amd64.amd64/stand/i386/btx/btx/btx -l boot2.ldr  -o
> >>> boot2.ld -P 1 boot2.bin
> >>> make[6]: exec(btxld) failed (No such file or directory)
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[6]: stopped in /usr/src/stand/i386/boot2
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[5]: stopped in /usr/src/stand/i386
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[4]: stopped in /usr/src/stand
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[3]: stopped in /usr/src
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[2]: stopped in /usr/src
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[1]: stopped in /usr/src
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make: stopped in /usr/src
> >>> -- cut --
> >>>
> >>> /etc/src.conf is absent
> >>>
> >>> /etc/make.conf:
> >>> -- cut --
> >>> NO_GUI=         true
> >>> NO_X=           true
> >>> OPTIONS_UNSET=  GUI
> >>> OPTIONS_UNSET=  X11
> >>>
> >>> # with SASLv2:
> >>> SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
> >>> SENDMAIL_LDFLAGS=-L/usr/local/lib
> >>> SENDMAIL_LDADD=-lsasl2
> >>> -- cut --
> >>>
> >>> What to do now?
> >>>
> >>
> >> It became quite a common failure (race) lately for parallel builds with
> >> NO_CLEAN and nullfs mounted OBJ dir. In my case rebuilding world with
> >> only one job helps. You can also ignore this and install the world
> >> anyway.
> >
> > Thank a lot for your answer!
> >
> > Indeed, /usr/obj is mounted by nullfs.
> > I will try to rebuild the world in one thread.
> >
> > But how can i ignore the error and continue the installation of the
> world?
> > Is there some kind of flag for the Makefile?
> >
>
> Please compare make(1). "make -i installworld" will do the job, but it
> should be considered as a temporary only solution which might lead to
> some serious failures when abused.
>
> There was a thread about this issue in 13-BETA3 on the freebsd-stable@
> mailing list, but I can't give you the reference since archives from
> February 2021 disappeared. For the first time I have fallen into this
> about 2 years (January 2020) on CURRENT and asked for help on
> freebsd-current@. At that time keveans@ suggested such a patch:
>
> diff --git a/stand/i386/Makefile b/stand/i386/Makefile
> index a9d402acf60..24255eefabf 100644
> --- a/stand/i386/Makefile
> +++ b/stand/i386/Makefile
> @@ -4,7 +4,10 @@ NO_OBJ=t
>
>  .include <bsd.init.mk>
>
> -SUBDIR.yes=    mbr pmbr boot0 boot0sio btx boot2 cdboot gptboot \
> +# Almost everything else here relies on btxldr, so we must make sure
> it's built
> +# before everything else proceeds so we don't end up building against a
> stale
> +# btxldr and ending up with a build-during-install scenario.
> +SUBDIR.yes=    btx .WAIT mbr pmbr boot0 boot0sio boot2 cdboot gptboot \
>                 isoboot libi386
>
> This patch worked back at that time. Unfortunately the thread on the
> mailing list disappeared, so I can't give you the reference.
>

The race that causes this problem isn't completely solved by this, but it
usually works and is better than the 13.0 release code.

Warner

-- 
> Marek Zarychta
>
>