Subject: Re: bug#31974: If a phase returns #f, a warning is issued, but the build continues

From: Mark H Weaver <[email-masked]>
Date: Thu, 28 Jun 2018 01:09:25 -0400

[email-masked] (Ludovic Courtès) writes:

> Mark H Weaver <[email-masked]> skribis:
>
>> I just noticed that I made a mistake in commit
>> d8a3b1b9e847d4a44d2695f95af77170d4d2788f, which changed 'gnu-build' in
>> (guix build gnu-build-system) to issue a warning if a phase returns a
>> value other than #t.
>>
>> The result is that if a phase returns a value other than #t, a warning
>> is issued, but the build nonetheless continues to the next phase, and
>> the build could ultimately "succeed" even some phases returned #f.
>>
>> In other words, the return values of phases are effectively ignored,
>> except for the warning, so the only way to cause a build with phases to
>> fail is to raise an exception.
>
> Thanks for the heads-up.  In practice, I suppose many builds would
> eventually fail anyway, but we’ll have to keep an eye on it.

I grepped the build logs on Hydra from evaluation 110021 searching for
the warning issued when a phase returns #f.  Some of the build logs had
been deleted, but of the builds whose logs are still present, these are
the ones whose 'check' phase returned #f, but which nonetheless
succeeded:

  aegis-4.24 (x86_64 i686)
  coq-8.8.0 (armhf)
  coq-gappa-1.3.2 (armhf)
  crawl-0.21.0 (armhf)
  gexiv2-0.10.8 (i686)
  java-eclipse-jetty-security-9.4.6 (x86_64)
  java-kafka-clients-1.0.0 (x86_64)
  maven-compat-3.5.3 (x86_64)
  ocaml-4.01.0 (armhf)
  python-django-1.11.11 (x86_64 i686)
  python-ptyprocess-0.5.2 (armhf)
  python2-astroid-1.5.3 (i686 armhf)
  python2-bz2file-0.98 (x86_64 i686 armhf)
  python2-dendropy-4.2.0 (i686)
  python2-django-1.11.11 (x86_64 i686)
  python2-django-allauth-0.30.0 (x86_64 i686)
  restic-0.9.1 (x86_64 i686)
  ruby-concurrent-1.0.5 (armhf)
  ruby-connection-pool-2.2.2 (i686)
  ruby-json-pure-2.1.0 (x86_64 i686)
  ruby-redcarpet-3.4.0 (i686 armhf)
  shaderc-0.0.0-2.be8e087 (x86_64 i686 armhf)
  skopeo-0.1.28 (i686)
  syncthing-0.14.48 (i686)

Here are the ones where the 'build' phase returned #f:

  ocaml-gsl-1.19.3.drv (armhf)
  ocaml4.01-gsl-1.19.3.drv (armhf)
  scm-5f2.drv (i686 armhf)
  teeworlds-0.6.4.drv (armhf)

And here are the ones where some other phase returned #f:

  gnome-dictionary-3.26.1.drv (x86_64 i686 armhf):  ## WARNING: phase `install' returned `#f'.
  hop-3.1.0-pre2.drv (armhf):                       ## WARNING: phase `configure' returned `#f'.
  sorcer-1.1.3.drv (x86_64 i686 armhf):             ## WARNING: phase `build-faust-sources' returned `#f'.

Here's a combined list with the derivations and links to the
Hydra builds:

https://hydra.gnu.org/build/2801304 | i686-linux   | /gnu/store/1pzb1d2s03p6728wfifnhjxfbh02njik-aegis-4.24.drv
https://hydra.gnu.org/build/2791716 | x86_64-linux | /gnu/store/sdhr6r50pchw1c54gl6w3h7abnv9k63q-aegis-4.24.drv
https://hydra.gnu.org/build/2842834 | armhf-linux  | /gnu/store/6cd0sd5jllxqw3q3g9s7z804f36kg9ll-coq-8.8.0.drv
https://hydra.gnu.org/build/2841249 | armhf-linux  | /gnu/store/77japmdnhrb9dws0cjak3lbkjmxkxvn9-coq-gappa-1.3.2.drv
https://hydra.gnu.org/build/2805499 | armhf-linux  | /gnu/store/mvf8j3fyp0wq98yxr3fh8cdkyx8ap0ds-crawl-0.21.0.drv
https://hydra.gnu.org/build/2797616 | i686-linux   | /gnu/store/7h2zk83lpbh9ms41bhx5gpygi1rjv7nw-gexiv2-0.10.8.drv
https://hydra.gnu.org/build/2841898 | armhf-linux  | /gnu/store/ddgiz8db0y1im3i3c2zh3j52wkkibas7-gnome-dictionary-3.26.1.drv
https://hydra.gnu.org/build/2842705 | i686-linux   | /gnu/store/lrgbx1qsz21ylvdya8grx1rkpgr8zqa5-gnome-dictionary-3.26.1.drv
https://hydra.gnu.org/build/2840885 | x86_64-linux | /gnu/store/fywqcpdgijbbgc2w03wg57w76kzgrghn-gnome-dictionary-3.26.1.drv
https://hydra.gnu.org/build/2842410 | x86_64-linux | /gnu/store/2jl85jn1q3llhzscy7b02x76izw5w284-java-eclipse-jetty-security-9.4.6.drv
https://hydra.gnu.org/build/2841151 | x86_64-linux | /gnu/store/13cbi0mfhn40dfa705q1bx77jayp0a5k-java-kafka-clients-1.0.0.drv
https://hydra.gnu.org/build/2843944 | x86_64-linux | /gnu/store/wbc3fzqqvp4f9nhn3f59bkd0kvjrvciz-maven-compat-3.5.3.drv
https://hydra.gnu.org/build/2789087 | armhf-linux  | /gnu/store/pkjxjs7rsrz5fn3m5vhs761prir1xiv7-ocaml-4.01.0.drv
https://hydra.gnu.org/build/2843063 | armhf-linux  | /gnu/store/93xqlng0ihng0xnxc3ilmw23malakp8q-ocaml-gsl-1.19.3.drv
https://hydra.gnu.org/build/2815032 | armhf-linux  | /gnu/store/gy1xv9n6q3nh4bgwm42nzpqmc2gw8x2g-ocaml4.01-gsl-1.19.3.drv
https://hydra.gnu.org/build/2839505 | i686-linux   | /gnu/store/43nqys57lgy4z0ldxq983vl4vrxrzr4w-python-django-1.11.11.drv
https://hydra.gnu.org/build/2840027 | x86_64-linux | /gnu/store/6nwm5zsfk5vxj4vq5blckl7j4hyz246k-python-django-1.11.11.drv
https://hydra.gnu.org/build/2791170 | armhf-linux  | /gnu/store/0478c2n6cfpx50viy95204dwwdqs3ggv-python-ptyprocess-0.5.2.drv
https://hydra.gnu.org/build/2795214 | armhf-linux  | /gnu/store/bxyr5vi0ilv2z3q5wfk6qfzl5ahl6hb7-python2-astroid-1.5.3.drv
https://hydra.gnu.org/build/2795813 | i686-linux   | /gnu/store/h4v2xcs0yycwn7dn4bjf8fci77bf7h05-python2-astroid-1.5.3.drv
https://hydra.gnu.org/build/2799056 | armhf-linux  | /gnu/store/jvbk35z3s5cvyjs8a5ilz289k0gkgqmv-python2-bz2file-0.98.drv
https://hydra.gnu.org/build/2798019 | i686-linux   | /gnu/store/s19a20dlq6g4fm84jdgg8njvdl9ppz4d-python2-bz2file-0.98.drv
https://hydra.gnu.org/build/2798128 | x86_64-linux | /gnu/store/0cln2r1ln15avh0kmc6drwz756fc4bvv-python2-bz2file-0.98.drv
https://hydra.gnu.org/build/2789737 | i686-linux   | /gnu/store/d35bm2fjsmz4dzcavpd16khdg6pyfazr-python2-dendropy-4.2.0.drv
https://hydra.gnu.org/build/2839515 | i686-linux   | /gnu/store/y70lr6yk2ainc74j58fjdxyil2ys06qk-python2-django-1.11.11.drv
https://hydra.gnu.org/build/2840426 | x86_64-linux | /gnu/store/bchmr8fynjh5j8zrfg9pxaqvm11vm1a6-python2-django-1.11.11.drv
https://hydra.gnu.org/build/2842057 | i686-linux   | /gnu/store/0v1dgqw1p8z96gi37i3ai958yl3zpj62-python2-django-allauth-0.30.0.drv
https://hydra.gnu.org/build/2841037 | x86_64-linux | /gnu/store/9a7nx0pi3rs4nvy7nzif6frhlsa00qpz-python2-django-allauth-0.30.0.drv
https://hydra.gnu.org/build/2843841 | i686-linux   | /gnu/store/2wp8xbkipwm80zvh528whp4dgi3q8jya-restic-0.9.1.drv
https://hydra.gnu.org/build/2843458 | x86_64-linux | /gnu/store/lbw8kyb4pzr550bi7b47zjzwgdybylix-restic-0.9.1.drv
https://hydra.gnu.org/build/2796244 | armhf-linux  | /gnu/store/4k62sq4dggyi9xh10qsv2mihpz81d92q-ruby-concurrent-1.0.5.drv
https://hydra.gnu.org/build/2789937 | i686-linux   | /gnu/store/yc0rjldnjmp2m2b31y2q0kgn2956mvna-ruby-connection-pool-2.2.2.drv
https://hydra.gnu.org/build/2842387 | i686-linux   | /gnu/store/jqylsar0skxz9l9mmxv1xx4xnl076y8y-ruby-json-pure-2.1.0.drv
https://hydra.gnu.org/build/2841410 | x86_64-linux | /gnu/store/vj0xyabkyy8jb5lih1j5zv0n7d7kr394-ruby-json-pure-2.1.0.drv
https://hydra.gnu.org/build/2840802 | armhf-linux  | /gnu/store/97wgys535pz9yi616arv1dkd3953vqa8-ruby-redcarpet-3.4.0.drv
https://hydra.gnu.org/build/2842647 | i686-linux   | /gnu/store/05mdymhhdhhk3nr21xy4vnmjjv7f8wn7-ruby-redcarpet-3.4.0.drv
https://hydra.gnu.org/build/2812123 | armhf-linux  | /gnu/store/l7k1fywmmyc5fsrch9b15j86kcr3jwhd-shaderc-0.0.0-2.be8e087.drv
https://hydra.gnu.org/build/2811921 | i686-linux   | /gnu/store/y2qg306qp9x0yp0q6j69h4jpl7q4vk18-shaderc-0.0.0-2.be8e087.drv
https://hydra.gnu.org/build/2811833 | x86_64-linux | /gnu/store/smax7jsialvq2lhg6zf4wcxpnsqal7bv-shaderc-0.0.0-2.be8e087.drv
https://hydra.gnu.org/build/2843817 | i686-linux   | /gnu/store/7l5x373wrvhlrcq2yqmfg0ghjddpv11l-skopeo-0.1.28.drv
https://hydra.gnu.org/build/2842125 | armhf-linux  | /gnu/store/c1ah46yc5yrhizv4z0rkldpj45hg1mj2-sorcer-1.1.3.drv
https://hydra.gnu.org/build/2841220 | i686-linux   | /gnu/store/p5m5wjacj7j2yasn7419dv6xrpaflp23-sorcer-1.1.3.drv
https://hydra.gnu.org/build/2840704 | x86_64-linux | /gnu/store/wix2rm45g4dzn2l5rcnjbd1vlcyp0l32-sorcer-1.1.3.drv
https://hydra.gnu.org/build/2844279 | i686-linux   | /gnu/store/sjm4chzv7cv9nj0izvxlarvwlinpahwg-syncthing-0.14.48.drv

       Mark