Bug 1664396

Summary: debuginfo-both tests from rust internal testsuite fail on rhel-8 x86_64 and aarch64
Product: Red Hat Enterprise Linux 8 Reporter: Edjunior Barbosa Machado <emachado>
Component: rust-toolsetAssignee: Josh Stone <jistone>
Status: CLOSED ERRATA QA Contact: Alexandra Petlanová Hájková <ahajkova>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.0CC: ahajkova, jistone, mcermak, tstellar
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 1691972 1730716 (view as bug list) Environment:
Last Closed: 2019-11-05 21:03:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1666533, 1696190    
Bug Blocks: 1691972, 1730716    

Description Edjunior Barbosa Machado 2019-01-08 16:23:08 UTC
Description of problem:
Several debuginfo-both testcases from rust-1.31.0-5.module+el8+2556+ac3e4365 internal testsuite are failing on RHEL-8 x86_64 and aarch64. Most of these tests are either running successfully or being ignored on ppc64le and s390x. The total of failures on debuginfo-both testcases by arch are:

aarch64: 91
x86_64: 93
ppc64le: 7
s390x: 8

This is the list of failures on x86_64:

$ grep ^test.*debuginfo-both.*FAILED 3238578_rust-1.31.0-5.module+el8+2556+ac3e4365.x86_64_rhel-8.0_rebuild.log
test [debuginfo-both] debuginfo/associated-types.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-globals-metadata.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-globals.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-metadata.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-mut-globals.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-basic.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-c-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-enum.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-unique-basic.rs ... FAILED
test [debuginfo-both] debuginfo/box.rs ... FAILED
test [debuginfo-both] debuginfo/boxed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/by-value-self-argument-in-trait-impl.rs ... FAILED
test [debuginfo-both] debuginfo/c-style-enum-in-composite.rs ... FAILED
test [debuginfo-both] debuginfo/c-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/closure-in-generic-function.rs ... FAILED
test [debuginfo-both] debuginfo/constant-debug-locs.rs ... FAILED
test [debuginfo-both] debuginfo/constant-in-match-pattern.rs ... FAILED
test [debuginfo-both] debuginfo/cross-crate-spans.rs ... FAILED
test [debuginfo-both] debuginfo/cross-crate-type-uniquing.rs ... FAILED
test [debuginfo-both] debuginfo/destructured-fn-argument.rs ... FAILED
test [debuginfo-both] debuginfo/destructured-for-loop-variable.rs ... FAILED
test [debuginfo-both] debuginfo/destructured-local.rs ... FAILED
test [debuginfo-both] debuginfo/evec-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/extern-c-fn.rs ... FAILED
test [debuginfo-both] debuginfo/function-arguments.rs ... FAILED
test [debuginfo-both] debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs ... FAILED
test [debuginfo-both] debuginfo/generic-enum-with-different-disr-sizes.rs ... FAILED
test [debuginfo-both] debuginfo/generic-function.rs ... FAILED
test [debuginfo-both] debuginfo/generic-functions-nested.rs ... FAILED
test [debuginfo-both] debuginfo/generic-method-on-generic-struct.rs ... FAILED
test [debuginfo-both] debuginfo/generic-static-method-on-struct-and-enum.rs ... FAILED
test [debuginfo-both] debuginfo/generic-struct-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/generic-struct.rs ... FAILED
test [debuginfo-both] debuginfo/generic-tuple-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/include_string.rs ... FAILED
test [debuginfo-both] debuginfo/issue-13213.rs ... FAILED
test [debuginfo-both] debuginfo/issue-14411.rs ... FAILED
test [debuginfo-both] debuginfo/issue-22656.rs ... FAILED
test [debuginfo-both] debuginfo/issue-7712.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-for-loop.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-if.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-match.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-parameterless-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-stack-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-unconditional-loop.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-unique-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-while.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scopes-in-block-expression.rs ... FAILED
test [debuginfo-both] debuginfo/macro-stepping.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-generic-struct.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-struct.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-trait.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-tuple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/multi-byte-chars.rs ... FAILED
test [debuginfo-both] debuginfo/multi-cgu.rs ... FAILED
test [debuginfo-both] debuginfo/multiple-functions-equal-var-names.rs ... FAILED
test [debuginfo-both] debuginfo/multiple-functions.rs ... FAILED
test [debuginfo-both] debuginfo/name-shadowing-and-scope-nesting.rs ... FAILED
test [debuginfo-both] debuginfo/nil-enum.rs ... FAILED
test [debuginfo-both] debuginfo/packed-struct-with-destructor.rs ... FAILED
test [debuginfo-both] debuginfo/packed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-huge-vec.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-std-collections.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-uninitialized-vec.rs ... FAILED
test [debuginfo-both] debuginfo/self-in-default-method.rs ... FAILED
test [debuginfo-both] debuginfo/self-in-generic-default-method.rs ... FAILED
test [debuginfo-both] debuginfo/shadowed-argument.rs ... FAILED
test [debuginfo-both] debuginfo/shadowed-variable.rs ... FAILED
test [debuginfo-both] debuginfo/simple-lexical-scope.rs ... FAILED
test [debuginfo-both] debuginfo/simple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/simple-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/static-method-on-struct-and-enum.rs ... FAILED
test [debuginfo-both] debuginfo/struct-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/struct-namespace.rs ... FAILED
test [debuginfo-both] debuginfo/struct-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/struct-with-destructor.rs ... FAILED
test [debuginfo-both] debuginfo/trait-pointers.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-in-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/union-smoke.rs ... FAILED
test [debuginfo-both] debuginfo/unique-enum.rs ... FAILED
test [debuginfo-both] debuginfo/unreachable-locals.rs ... FAILED
test [debuginfo-both] debuginfo/unsized.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-nested-closure.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-sendable-closure.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-stack-closure.rs ... FAILED
test [debuginfo-both] debuginfo/vec-slices.rs ... FAILED
test [debuginfo-both] debuginfo/vec.rs ... FAILED

(On aarch64, [debuginfo-both] debuginfo/c-style-enum.rs and debuginfo/macro-stepping.rs are 'ignored')

These are all new testcases that were not included in previous rust-1.29.2-1.module+el8+2183+c73ca3a4.

Version-Release number of selected component (if applicable):
rust-1.31.0-5.module+el8+2556+ac3e4365
RHEL-8.0-20181220.1

Steps to Reproduce:
1. yum-builddep ./rust-1.31.0-5.module+el8+2556+ac3e4365.src.rpm
2. rpmbuild --recompile ./rust-1.31.0-5.module+el8+2556+ac3e4365.src.rpm

Comment 2 Edjunior Barbosa Machado 2019-01-08 16:28:20 UTC
Most of the failures seem to be related to this python error when trying to import thread module (deprecated on python3):

...
---- [debuginfo-both] debuginfo/borrowed-basic.rs stdout ----
NOTE: compiletest thinks it is using GDB with native rust support
NOTE: compiletest thinks it is using GDB version 8002000
NOTE: compiletest thinks it is using LLDB version 700
NOTE: compiletest thinks it is using LLDB without native rust support

error: Error while running LLDB
status: exit code: 1
command: "/usr/libexec/platform-python" "/root/rpmbuild/BUILD/rustc-1.31.0-src/src/etc/lldb_batchmode.py" "/root/rpmbuild/BUILD/rustc-1.31.0-src/build/aarch64-unknown-linux-gnu/test/debuginfo/borrowed-basic/a" "/root/rpmbuild/BUILD/rustc-1.31.0-src/build/aarch64-unknown-linux-gnu/test/debuginfo/borrowed-basic/borrowed-basic.debugger.script"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
Traceback (most recent call last):
  File "/root/rpmbuild/BUILD/rustc-1.31.0-src/src/etc/lldb_batchmode.py", line 31, in <module>
    import thread
ModuleNotFoundError: No module named 'thread'

------------------------------------------

thread '[debuginfo-both] debuginfo/borrowed-basic.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3284:9
...

And the reason they are not failing in s390x and ppc64le might be because these arches currently do not support lldb.

Comment 3 Josh Stone 2019-01-08 21:28:00 UTC
I've sent a PR to use _thread as a fallback: https://github.com/rust-lang/rust/pull/57453

I don't think this is critical for GA.  In the meantime, if you can run the testsuite on a machine *without* LLDB installed, you should at least be able to get GDB results.

Comment 4 Edjunior Barbosa Machado 2019-01-11 12:18:03 UTC
(In reply to Josh Stone from comment #3)
> I've sent a PR to use _thread as a fallback:
> https://github.com/rust-lang/rust/pull/57453
> 
> I don't think this is critical for GA.  In the meantime, if you can run the
> testsuite on a machine *without* LLDB installed, you should at least be able
> to get GDB results.

Without lldb installed on these arches, the number of failures on debuginfo-both testcases was strongly reduced:

aarch64: 8
x86_64: 7

$ grep ^test.*debuginfo-both.*FAILED *
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/borrowed-c-style-enum.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/by-value-self-argument-in-trait-impl.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/c-style-enum-in-composite.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-enum-with-different-disr-sizes.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-struct-style-enum.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-tuple-style-enum.rs ... FAILED
aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/nil-enum.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/borrowed-c-style-enum.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/c-style-enum-in-composite.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-enum-with-different-disr-sizes.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-struct-style-enum.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/generic-tuple-style-enum.rs ... FAILED
x86_64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/nil-enum.rs ... FAILED

Comment 5 Josh Stone 2019-01-15 17:23:27 UTC
Thanks. And the upstream patch was merged to fix rust-lldb for python3.

I think the enum failures are just small differences in the way they are printed by different versions of GDB.

> aarch64_rhel-8.0_rebuild.log:test [debuginfo-both] debuginfo/by-value-self-argument-in-trait-impl.rs ... FAILED

This is a recurrence of bug 1611597, llvm bug 1625768. That patch didn't make it into the LLVM 7 release, and was forgotten to backport in the RHEL8 package. It's just a debuginfo issue though, not affecting program execution, so I don't think it's critical.

Comment 9 Alexandra Petlanová Hájková 2019-07-16 11:32:21 UTC
According to the testsuite results this bug does not seem to be fixed, the full results: http://plat-qe-04.lab.eng.rdu2.redhat.com/output.html

grep ^test.*debuginfo-both.*FAILED 3671725_rust-1.35.0-2.module+el8.0.1+3282+25f778e4.x86_64_rhel-8.0_rebuild.log
test [debuginfo-both] debuginfo/basic-types-globals-metadata.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-globals.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-metadata.rs ... FAILED
test [debuginfo-both] debuginfo/basic-types-mut-globals.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-basic.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-c-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/borrowed-unique-basic.rs ... FAILED
test [debuginfo-both] debuginfo/box.rs ... FAILED
test [debuginfo-both] debuginfo/boxed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/by-value-self-argument-in-trait-impl.rs ... FAILED
test [debuginfo-both] debuginfo/c-style-enum-in-composite.rs ... FAILED
test [debuginfo-both] debuginfo/c-style-enum.rs ... FAILED
test [debuginfo-both] debuginfo/closure-in-generic-function.rs ... FAILED
test [debuginfo-both] debuginfo/constant-debug-locs.rs ... FAILED
test [debuginfo-both] debuginfo/constant-in-match-pattern.rs ... FAILED
test [debuginfo-both] debuginfo/cross-crate-type-uniquing.rs ... FAILED
test [debuginfo-both] debuginfo/destructured-fn-argument.rs ... FAILED
test [debuginfo-both] debuginfo/destructured-local.rs ... FAILED
test [debuginfo-both] debuginfo/empty-string.rs ... FAILED
test [debuginfo-both] debuginfo/evec-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/extern-c-fn.rs ... FAILED
test [debuginfo-both] debuginfo/function-arguments.rs ... FAILED
test [debuginfo-both] debuginfo/function-call.rs ... FAILED
test [debuginfo-both] debuginfo/generators.rs ... FAILED
test [debuginfo-both] debuginfo/generic-function.rs ... FAILED
test [debuginfo-both] debuginfo/generic-functions-nested.rs ... FAILED
test [debuginfo-both] debuginfo/generic-static-method-on-struct-and-enum.rs ... FAILED
test [debuginfo-both] debuginfo/include_string.rs ... FAILED
test [debuginfo-both] debuginfo/issue-13213.rs ... FAILED
test [debuginfo-both] debuginfo/issue-14411.rs ... FAILED
test [debuginfo-both] debuginfo/issue-22656.rs ... FAILED
test [debuginfo-both] debuginfo/issue-7712.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-for-loop.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-if.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-match.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-parameterless-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-stack-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-unconditional-loop.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-unique-closure.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scope-in-while.rs ... FAILED
test [debuginfo-both] debuginfo/lexical-scopes-in-block-expression.rs ... FAILED
test [debuginfo-both] debuginfo/macro-stepping.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-struct.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-trait.rs ... FAILED
test [debuginfo-both] debuginfo/method-on-tuple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/multi-byte-chars.rs ... FAILED
test [debuginfo-both] debuginfo/multi-cgu.rs ... FAILED
test [debuginfo-both] debuginfo/multiple-functions-equal-var-names.rs ... FAILED
test [debuginfo-both] debuginfo/multiple-functions.rs ... FAILED
test [debuginfo-both] debuginfo/name-shadowing-and-scope-nesting.rs ... FAILED
test [debuginfo-both] debuginfo/packed-struct-with-destructor.rs ... FAILED
test [debuginfo-both] debuginfo/packed-struct.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-huge-vec.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-std-collections.rs ... FAILED
test [debuginfo-both] debuginfo/pretty-uninitialized-vec.rs ... FAILED
test [debuginfo-both] debuginfo/self-in-default-method.rs ... FAILED
test [debuginfo-both] debuginfo/self-in-generic-default-method.rs ... FAILED
test [debuginfo-both] debuginfo/shadowed-argument.rs ... FAILED
test [debuginfo-both] debuginfo/shadowed-variable.rs ... FAILED
test [debuginfo-both] debuginfo/simple-lexical-scope.rs ... FAILED
test [debuginfo-both] debuginfo/simple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/simple-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/static-method-on-struct-and-enum.rs ... FAILED
test [debuginfo-both] debuginfo/struct-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/struct-namespace.rs ... FAILED
test [debuginfo-both] debuginfo/struct-with-destructor.rs ... FAILED
test [debuginfo-both] debuginfo/trait-pointers.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-in-struct.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-in-tuple.rs ... FAILED
test [debuginfo-both] debuginfo/tuple-struct.rs ... FAILED
test [debuginfo-both] debuginfo/union-smoke.rs ... FAILED
test [debuginfo-both] debuginfo/unreachable-locals.rs ... FAILED
test [debuginfo-both] debuginfo/unsized.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-nested-closure.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-sendable-closure.rs ... FAILED
test [debuginfo-both] debuginfo/var-captured-in-stack-closure.rs ... FAILED
test [debuginfo-both] debuginfo/vec-slices.rs ... FAILED
test [debuginfo-both] debuginfo/vec.rs ... FAILED

Comment 11 Josh Stone 2019-07-16 20:02:51 UTC
Hmm, strange, it's a different error, but for some reason the testsuite is trying to use python2.7.

error: Error while running LLDB
status: exit code: 1
command: "/usr/bin/python2.7" "/root/rpmbuild/BUILD/rustc-1.35.0-src/src/etc/lldb_batchmode.py" "/root/rpmbuild/BUILD/rustc-1.35.0-src/build/x86_64-unknown-linux-gnu/test/debuginfo/basic-types-globals-metadata/a" "/root/rpmbuild/BUILD/rustc-1.35.0-src/build/x86_64-unknown-linux-gnu/test/debuginfo/basic-types-globals-metadata/basic-types-globals-metadata.debugger.script"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
Traceback (most recent call last):
  File "/root/rpmbuild/BUILD/rustc-1.35.0-src/src/etc/lldb_batchmode.py", line 17, in <module>
    import lldb
  File "/usr/lib64/python3.6/site-packages/lldb/__init__.py", line 39, in <module>
    import _lldb
ImportError: dynamic module does not define init function (init_lldb)


The compiletest command for this section has "--lldb-python" "/usr/bin/python2.7" ... "--lldb-python-dir" "/usr/lib64/python3.6/site-packages". It's not going to work to mix python versions, of course.

The brew build used platform-python here, for a consistent python3 experience. But lldb wasn't installed either, so it only actually ran gdb tests.

Maybe it will work as expected if python2.7 is not installed on your test machine? But there may be some configuration flag I can set to make sure the desired python is used everywhere, not left to some fickle detection.

Comment 14 Martin Cermak 2019-07-22 07:44:56 UTC
*** Bug 1730716 has been marked as a duplicate of this bug. ***

Comment 15 Josh Stone 2019-07-24 17:06:48 UTC
(In reply to Josh Stone from comment #11)
> Hmm, strange, it's a different error, but for some reason the testsuite is
> trying to use python2.7.
> ...
> Maybe it will work as expected if python2.7 is not installed on your test
> machine? But there may be some configuration flag I can set to make sure the
> desired python is used everywhere, not left to some fickle detection.

So yes, I found this in src/bootstrap/sanity.rs:

    build.config.python = build.config.python.take().map(|p| cmd_finder.must_have(p))
        .or_else(|| cmd_finder.maybe_have("python2.7"))
        .or_else(|| cmd_finder.maybe_have("python2"))
        .or_else(|| env::var_os("BOOTSTRAP_PYTHON").map(PathBuf::from)) // set by bootstrap.py
        .or_else(|| Some(cmd_finder.must_have("python")));

That is, use the "./configure --python" value if given, otherwise try python2.7, python2, BOOTSTRAP_PYTHON (the one running the build script), or just python. I wasn't setting the configure option before, and in brew I didn't have any python2 installed, so it used BOOTSTRAP_PYTHON. But I guess your system did have python2.7, so that was chosen.

I will set "./configure --python" in the next build.

Comment 19 errata-xmlrpc 2019-11-05 21:03:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:3407