Re: [Regression] Docs build broken by commit 51e46c7a4007

From: Rafael J. Wysocki
Date: Thu Feb 20 2020 - 16:44:50 EST


On Thu, Feb 20, 2020 at 9:05 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> On Thu, Feb 20, 2020 at 07:50:47PM +0100, Rafael J. Wysocki wrote:
> > On two of my systems the docs build has been broken by commit
> > 51e46c7a4007 ("docs, parallelism: Rearrange how jobserver reservations
> > are made").
> >
> > The symptom is that the build system complains about the "output"
> > directory not being there and returns with an error.
> >
> > Reverting the problematic commit makes the problem go away.
>
> How strange! This must be some race in the parallel build.

I don't think so, I didn't use -j with htmldocs builds.

And you know what, adding "-j 2" to the command line actually makes it work. :-)

> AFAICT, "output" is made in the first sub-target (Documentation/media). This
> doesn't look entirely stable (there's no ordering implied by the "all"
> target in there)...
>
> Does this work for you?

No, it doesn't.

>
> diff --git a/Documentation/Makefile b/Documentation/Makefile
> index d77bb607aea4..5654e087ae1e 100644
> --- a/Documentation/Makefile
> +++ b/Documentation/Makefile
> @@ -62,7 +62,8 @@ loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit;
> # e.g. "media" for the linux-tv book-set at ./Documentation/media
>
> quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
> - cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \
> + cmd_sphinx = mkdir -p $(abspath $(BUILDDIR)) && \
> + $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \
> PYTHONDONTWRITEBYTECODE=1 \
> BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
> $(PYTHON) $(srctree)/scripts/jobserver-exec \
>
> --