Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-47431

Ninja re-generates the `build.ninja` module at first invocation after scons.py

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major - P3 Major - P3
    • None
    • None
    • Build
    • None
    • ALL
    • Dev Platform 2020-05-04

    Description

      If I run the following command it will take some time in order to generate the build.ninja module (which is understandable):

      [kaloianm@Kal-MacBook-Pro:~/workspace/mongo]$ buildscripts/scons.py --ssl --variables-files=etc/scons/xcode_macosx.vars --libc++ --detect-odr-violations --dbg=on --opt=off VARIANT_DIR=ninja --ninja build.ninja
      scons: Reading SConscript files ...
      scons: running with args /usr/local/opt/python/bin/python3.7 buildscripts/scons.py --ssl --variables-files=etc/scons/xcode_macosx.vars --libc++ --detect-odr-violations --dbg=on --opt=off VARIANT_DIR=ninja --ninja build.ninja
      Using variable customization file etc/scons/xcode_macosx.vars
      scons version: 3.1.2
      python version: 3 7 7 'final' 0
      ...
      scons: done reading SConscript files.
      scons: Building targets ...
      Generating: build.ninja
      scons: done building targets.
      

      However, if I run ninja core for example immediately after that, it again takes some time doing the same thing that the SCons invocation above did (and it seems to do it twice):

      [kaloianm@Kal-MacBook-Pro:~/workspace/mongo]$ ninja core
      [0/3856] Regenerating /Users/kaloianm/workspace/mongo/build.ninja
      scons: Reading SConscript files ...
      scons: running with args /usr/local/opt/python/bin/python3.7 buildscripts/scons.py --ssl --variables-files=etc/scons/xcode_macosx.vars --libc++ --detect-odr-violations --dbg=on --opt=off VARIANT_DIR=ninja --ninja build.ninja
      Using variable customization file etc/scons/xcode_macosx.vars
      scons version: 3.1.2
      python version: 3 7 7 'final' 0
      ... (all the scons checks here)
      Checking for KRB5 Features...no
      scons: done reading SConscript files.
      scons: Building targets ...
      Generating: build.ninja
      scons: done building targets.
      [1/3856] Rendering build/ninja/third_party/wiredtiger/wiredtiger.h build/ninja/mongo/util/version_constants.h build/ninja/mongo/config.h
      scons: Reading SConscript files ...
      scons: running with args /usr/local/opt/python/bin/python3.7 buildscripts/scons.py --ssl --variables-files=etc/scons/xcode_macosx.vars --libc++ --detect-odr-violations --dbg=on --opt=off VARIANT_DIR=ninja --ninja __NINJA_NO=1 build/ninja/third_party/wiredtiger/wiredtiger.h build/ninja/mongo/util/version_constants.h build/ninja/mongo/config.h
      Using variable customization file etc/scons/xcode_macosx.vars
      scons version: 3.1.2
      python version: 3 7 7 'final' 0
      ... (again all the scons checks here)
      Checking for KRB5 Features...no
      scons: done reading SConscript files.
      scons: Building targets ...
      Creating 'build/ninja/third_party/wiredtiger/wiredtiger.h'
      Creating 'build/ninja/mongo/util/version_constants.h'
      scons: `build/ninja/mongo/config.h' is up to date.
      scons: done building targets.
      [302/3856] Compiling build/ninja/mongo/util/net/ssl_options_server.o^C
      ninja: build stopped: interrupted by user.
      

      This seems unnecessary and it would be great if we can avoid it (also, I confirmed that it doesn't happen with the old ninja builder).

      Attachments

        Activity

          People

            andrew.morrow@mongodb.com Andrew Morrow (Inactive)
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: