sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.23k stars 430 forks source link

OS X: "make ptestlong" with MAKE set leads to doctest failures in the doctest/ directory #38116

Open jhpalmieri opened 2 months ago

jhpalmieri commented 2 months ago

Steps To Reproduce

With a number of homebrew packages in place, and with export MAKE="make -j8", run ./configure and make ptestlong.

Expected Behavior

All tests should pass.

Actual Behavior

I get doctest failures:

File "src/sage/doctest/control.py", line 1132, in sage.doctest.control.DocTestController.run_doctests
Failed example:
    DC.run_doctests()
Expected:
    Doctesting 1 file.
    sage -t .../sage/rings/homset.py
        [... tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds...
Got:
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
**********************************************************************
File "src/sage/doctest/control.py", line 1208, in sage.doctest.control.DocTestController.cleanup
Failed example:
    DC.run()
Exception raised:
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 714, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 1146, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.doctest.control.DocTestController.cleanup[9]>", line 1, in <module>
        DC.run()
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1575, in run
        self.run_doctests()
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1177, in run_doctests
        self.cleanup(False)
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1224, in cleanup
        self.save_stats(self.options.stats_path)
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 769, in save_stats
        json.dump(self.stats, stats_file, sort_keys=True, indent=4)
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/__init__.py", line 179, in dump
        for chunk in iterable:
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 432, in _iterencode
        yield from _iterencode_dict(o, _current_indent_level)
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict
        yield from chunks
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict
        yield from chunks
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 439, in _iterencode
        o = _default(o)
            ^^^^^^^^^^^
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 180, in default
        raise TypeError(f'Object of type {o.__class__.__name__} '
    TypeError: Object of type RealNumber is not JSON serializable
**********************************************************************
File "src/sage/doctest/control.py", line 1221, in sage.doctest.control.DocTestController.cleanup
Failed example:
    DC.cleanup()
Exception raised:
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 714, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 1146, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.doctest.control.DocTestController.cleanup[10]>", line 1, in <module>
        DC.cleanup()
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1224, in cleanup
        self.save_stats(self.options.stats_path)
      File "/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 769, in save_stats
        json.dump(self.stats, stats_file, sort_keys=True, indent=4)
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/__init__.py", line 179, in dump
        for chunk in iterable:
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 432, in _iterencode
        yield from _iterencode_dict(o, _current_indent_level)
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict
        yield from chunks
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict
        yield from chunks
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 439, in _iterencode
        o = _default(o)
            ^^^^^^^^^^^
      File "/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 180, in default
        raise TypeError(f'Object of type {o.__class__.__name__} '
    TypeError: Object of type RealNumber is not JSON serializable
**********************************************************************
File "src/sage/doctest/control.py", line 1405, in sage.doctest.control.DocTestController.run
Failed example:
    DC.run()
Expected:
    Running doctests with ID ...
    Doctesting 1 file.
    sage -t .../sage/sets/non_negative_integers.py
        [... tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
    0
Got:
    Running doctests with ID 2024-05-29-11-56-24-4f1cf9cf.
    Git branch: develop
    Git ref: 10.4.beta7
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sagemath_doc_html,scipy,sphinx,sympy
    128
**********************************************************************
File "src/sage/doctest/control.py", line 1427, in sage.doctest.control.DocTestController.run
Failed example:
    DC.run()
Expected:
    Running doctests with ID ...
    Using --optional=external,sage
    Features to be detected: ...
    Doctesting 1 file.
    sage -t ....py
        [0 tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
    0
Got:
    Running doctests with ID 2024-05-29-11-56-24-64c38989.
    Git branch: develop
    Git ref: 10.4.beta7
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=external,sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,cplex,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,dvips,ecm,ffmpeg,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,gurobi,imagemagick,internet,ipython,jmol,jupymake,kenzo,latex,latex_package_tkz_graph,latte_int,lrcalc_python,lrslib,lualatex,macaulay2,magma,maple,mathematica,matlab,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,octave,palp,pandoc,pdf2svg,pdflatex,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scilab,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs,xelatex
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sagemath_doc_html,scipy,sphinx,sympy
    128
**********************************************************************
File "src/sage/doctest/control.py", line 1453, in sage.doctest.control.DocTestController.run
Failed example:
    DC.run()
Expected:
    Running doctests with ID ...
    Using --optional=sage...
    Features to be detected: ...
    Doctesting 1 file.
    sage -t ....py
        [4 tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
    0
Got:
    Running doctests with ID 2024-05-29-11-56-24-e69e613d.
    Git branch: develop
    Git ref: 10.4.beta7
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sagemath_doc_html,scipy,sphinx,sympy
    Features that have been hidden: 
    128
**********************************************************************
File "src/sage/doctest/control.py", line 1471, in sage.doctest.control.DocTestController.run
Failed example:
    DC.run()
Expected:
    Running doctests with ID ...
    Using --optional=sage
    Features to be detected: ...
    Doctesting 1 file.
    sage -t ....py
        [4 tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
    0
Got:
    Running doctests with ID 2024-05-29-11-56-24-3fc21f36.
    Git branch: develop
    Git ref: 10.4.beta7
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sagemath_doc_html,scipy,sphinx,sympy
    Features that have been hidden: 
    128
**********************************************************************
File "src/sage/doctest/control.py", line 1599, in sage.doctest.control.run_doctests
Failed example:
    run_doctests(sage.rings.all)
Expected:
    Running doctests with ID ...
    Doctesting 1 file.
    sage -t .../sage/rings/all.py
        [... tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
Got:
    Running doctests with ID 2024-05-29-11-56-24-74e2ca4a.
    Git branch: develop
    Git ref: 10.4.beta7
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,pillow,polytopes_db,pplpy,primecountpy,ptyprocess,pyparsing,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.schemes,sagemath_doc_html,scipy,sphinx,sympy
**********************************************************************
4 items had failures:
   2 of  12 in sage.doctest.control.DocTestController.cleanup
   4 of  22 in sage.doctest.control.DocTestController.run
   1 of   9 in sage.doctest.control.DocTestController.run_doctests
   1 of   2 in sage.doctest.control.run_doctests
    [229 tests, 8 failures, 0.44 s]

and

sage -t --long --warn-long 22.6 --random-seed=103198275017503752303450993870311094857 src/sage/doctest/forker.py
**********************************************************************
File "src/sage/doctest/forker.py", line 1803, in sage.doctest.forker.DocTestDispatcher.parallel_dispatch
Failed example:
    DD.parallel_dispatch()
Expected:
    sage -t .../databases/cremona.py
        [... tests, ... s]
    sage -t .../rings/big_oh.py
        [... tests, ... s]
Got:
    <BLANKLINE>
**********************************************************************
File "src/sage/doctest/forker.py", line 1814, in sage.doctest.forker.DocTestDispatcher.parallel_dispatch
Failed example:
    with NTF(suffix=".py", mode="w+t") as f1, NTF(suffix=".py", mode="w+t") as f2:
        _ = f1.write("'''\nsage: import time; time.sleep(60)\n'''")
        f1.flush()
        _ = f2.write("'''\nsage: True\nFalse\n'''")
        f2.flush()
        DC = DocTestController(DocTestDefaults(exitfirst=True,
                                               nthreads=2),
                               [f1.name, f2.name])
        DC.expand_files_into_sources()
        DD = DocTestDispatcher(DC)
        DR = DocTestReporter(DC)
        DC.reporter = DR
        DC.dispatcher = DD
        DC.timer = Timer().start()
        DD.parallel_dispatch()
Expected:
    sage -t ...
    **********************************************************************
    File "...", line 2, in ...
    Failed example:
        True
    Expected:
        False
    Got:
        True
    **********************************************************************
    1 item had failures:
       1 of   1 in ...
        [1 test, 1 failure, ... s]
    Killing test ...
Got:
    <BLANKLINE>
**********************************************************************
File "src/sage/doctest/forker.py", line 2137, in sage.doctest.forker.DocTestDispatcher.dispatch
Failed example:
    DD.dispatch()
Expected:
    sage -t .../sage/modules/free_module_homspace.py
        [... tests, ... s]
    sage -t .../sage/rings/big_oh.py
        [... tests, ... s]
Got:
    <BLANKLINE>
**********************************************************************
File "src/sage/doctest/forker.py", line 2199, in sage.doctest.forker.DocTestWorker.__init__
Failed example:
    run_doctests(sage.rings.big_oh) # indirect doctest
Expected:
    Running doctests with ID ...
    Doctesting 1 file.
    sage -t .../sage/rings/big_oh.py
        [... tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
Got:
    Running doctests with ID 2024-05-29-15-32-36-ded71d2f.
    Git branch: sage.symbolic
    Git ref: 10.4.beta7-1-g1ab49b398b
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,networkx,numpy,palp,pandoc,pplpy,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_mpfr,sage.schemes,sage.symbolic,sagemath_doc_html,scipy,sphinx,sympy
**********************************************************************
File "src/sage/doctest/forker.py", line 2246, in sage.doctest.forker.DocTestWorker.run
Failed example:
    run_doctests(sage.symbolic.units)  # indirect doctest                 # needs sage.symbolic
Expected:
    Running doctests with ID ...
    Doctesting 1 file.
    sage -t .../sage/symbolic/units.py
        [... tests, ... s]
    ----------------------------------------------------------------------
    All tests passed!
    ----------------------------------------------------------------------
    Total time for all tests: ... seconds
        cpu time: ... seconds
        cumulative wall time: ... seconds
    Features detected...
Got:
    Running doctests with ID 2024-05-29-15-32-36-9958896c.
    Git branch: sage.symbolic
    Git ref: 10.4.beta7-1-g1ab49b398b
    Running with SAGE_LOCAL='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local' and SAGE_VENV='/Users/jpalmier/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12'
    Using --optional=sage
    Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,graphviz,imagemagick,ipython,jmol,jupymake,kenzo,latte_int,lrcalc_python,lrslib,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pynormaliz,pyparsing,python_igraph,requests,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sphinx,symengine_py,sympy,tdlib,threejs
    Doctesting 1 file.
    ----------------------------------------------------------------------
    Doctests interrupted: 0/1 files tested
    ----------------------------------------------------------------------
    Total time for all tests: 0.0 seconds
        cpu time: 0.0 seconds
        cumulative wall time: 0.0 seconds
    Features detected for doctesting: fpylll,gap_package_polycyclic,graphviz,lrcalc_python,mpmath,networkx,numpy,palp,pandoc,pplpy,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.flint,sage.libs.gap,sage.libs.linbox,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_mpfr,sage.schemes,sage.symbolic,sagemath_doc_html,scipy,sphinx,sympy
**********************************************************************
4 items had failures:
   1 of  16 in sage.doctest.forker.DocTestDispatcher.dispatch
   2 of  18 in sage.doctest.forker.DocTestDispatcher.parallel_dispatch
   1 of   2 in sage.doctest.forker.DocTestWorker.__init__
   1 of   2 in sage.doctest.forker.DocTestWorker.run
    [417 tests, 5 failures, 7.19 s]

Additional Information

Note that ./sage -tp --long src/sage/doctest/ succeeds: I only see these tests when using make ptestlong, and I see them every time.

In addition, if MAKE and MAKEFLAGS are unset, then I do not see these failures with make ptestlong.

Environment

- **OS**: OS X 14.5
- **Sage Version**: 10.4.beta7 and many earlier versions

Checklist

mkoeppe commented 2 months ago

Do the errors show up if you do make ptestlong-nodoc TEST_FILES=src/sage/doctest/control.py?

jhpalmieri commented 2 months ago

Do the errors show up if you do make ptestlong-nodoc TEST_FILES=src/sage/doctest/control.py?

No errors with this; I tried it two or three times and it worked every time. With make ptestlong-nodoc TEST_FILES=src/sage/doctest/, I see an error in control.py but not in forker.py.

jhpalmieri commented 2 months ago

Do the errors show up if you do make ptestlong-nodoc TEST_FILES=src/sage/doctest/control.py?

No errors with this; I tried it two or three times and it worked every time. With make ptestlong-nodoc TEST_FILES=src/sage/doctest/, I see an error in control.py but not in forker.py.

Same thing happens on another machine.

mkoeppe commented 2 months ago

I can't seem to repro this on my machine. Could you post the config.log from the affected machines?

jhpalmieri commented 2 months ago

Let me revise that: when I run make ptestlong, I see

sage -t --long --warn-long 22.6 --random-seed=103198275017503752303450993870311094857 src/sage/doctest/forker.py  # 5 doctests failed
sage -t --long --warn-long 22.6 --random-seed=103198275017503752303450993870311094857 src/sage/doctest/control.py  # 8 doctests failed

When I run make ptestlong-nodoc TEST_FILES=src/sage/doctest/, I see

sage -t --long --warn-long 23.4 --random-seed=279304829544013546166396286006292086053 src/sage/doctest/control.py  # 3 doctests failed

So I see failures, but fewer failures, in one file.

jhpalmieri commented 2 months ago

Here is one config.log file: config.log

mkoeppe commented 2 months ago

Could you try with this:

diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
index ba78f9bc2a6..fa5b9a062c7 100644
--- a/src/sage/doctest/control.py
+++ b/src/sage/doctest/control.py
@@ -1030,8 +1030,8 @@ class DocTestController(SageObject):
             sage: DC = DocTestController(DD, [dirname])
             sage: DC.expand_files_into_sources()
             sage: for i, source in enumerate(DC.sources):
-            ....:     DC.stats[source.basename] = {'walltime': 0.1*(i+1)}
-            sage: DC.stats['sage.doctest.control'] = {'failed':True,'walltime':1.0}
+            ....:     DC.stats[source.basename] = {'walltime': 0.1r*(i+1)}
+            sage: DC.stats['sage.doctest.control'] = {'failed':True,'walltime':1.0r}
             sage: DC.filter_sources()
             Only doctesting files that failed last test.
             sage: len(DC.sources)
@@ -1061,7 +1061,7 @@ class DocTestController(SageObject):
             sage: DC.expand_files_into_sources()
             sage: DC.sources.sort(key=lambda s:s.basename)
             sage: for i, source in enumerate(DC.sources):
-            ....:     DC.stats[source.basename] = {'walltime': 0.1*(i+1)}
+            ....:     DC.stats[source.basename] = {'walltime': 0.1r*(i+1)}
             sage: DC.sort_sources()
             Sorting sources by runtime so that slower doctests are run first....
             sage: print("\n".join(source.basename for source in DC.sources))
@@ -1202,7 +1202,7 @@ class DocTestController(SageObject):
             sage: DC.sources.sort(key=lambda s:s.basename)

             sage: for i, source in enumerate(DC.sources):
-            ....:     DC.stats[source.basename] = {'walltime': 0.1*(i+1)}
+            ....:     DC.stats[source.basename] = {'walltime': 0.1r*(i+1)}
             ....:

             sage: DC.run()
jhpalmieri commented 2 months ago

I get

sage -t --long --warn-long 23.4 --random-seed=338769229448687006311559652536132196272 src/sage/doctest/control.py  # 2 doctests failed

so a slight improvement.

jhpalmieri commented 2 months ago

By the way, I think I have been seeing these failures for a long time, both on an Intel machine (which I no longer own) and Apple Silicon.

mkoeppe commented 2 months ago

I've found a few places more to change, please try #38122

jhpalmieri commented 2 months ago

For what it's worth, I did brew install make (which installs a newer version of make as gmake) and then export MAKE="gmake -j8", and I still get the same doctest failures with make ptestlong-nodoc TEST_FILES=src/sage/doctest/.

mkoeppe commented 2 months ago

Could you check if ./sage -pip uninstall gnumake_tokenpool makes a difference?

jhpalmieri commented 1 month ago

Could you check if ./sage -pip uninstall gnumake_tokenpool makes a difference?

Yes, that fixes it: make ptestlong passes those tests.

mkoeppe commented 1 month ago

Could you try with ./sage -pip install 'git+https://github.com/milahu/gnumake-tokenpool@py-subprocess-read-with-timeout' please?

jhpalmieri commented 1 month ago

I didn't undo the uninstallation of gnumake_tokenpool, just did ./sage -pip install 'git+https://github.com/milahu/gnumake-tokenpool@py-subprocess-read-with-timeout'. Testing with make ptestlong-nodoc TEST_FILES=src/sage/doctest/ failed to run:

Doctesting 12 files using 8 threads.
Exception ignored in: <function JobClient.__del__ at 0x12ca9bec0>
Traceback (most recent call last):
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/local/var/lib/sage/venv-python3.12/lib/python3.12/site-packages/gnumake_tokenpool/tokenpool.py", line 205, in __del__
    if self._fdFifo:
       ^^^^^^^^^^^^
AttributeError: 'JobClient' object has no attribute '_fdFifo'
----------------------------------------------------------------------
Doctests interrupted: 0/12 files tested
----------------------------------------------------------------------
Total time for all tests: 0.0 seconds
    cpu time: 0.0 seconds
    cumulative wall time: 0.0 seconds
Traceback (most recent call last):
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/src/bin/sage-runtests", line 166, in <module>
    err = DC.run()
          ^^^^^^^^
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1575, in run
    self.run_doctests()
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/control.py", line 1171, in run_doctests
    self.dispatcher.dispatch()
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 2146, in dispatch
    self.parallel_dispatch()
  File "/Users/palmieri/Sage/TESTING/sage-10.4.beta7/src/sage/doctest/forker.py", line 1855, in parallel_dispatch
    job_client = JobClient(use_cysignals=True)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: JobClient.__init__() got an unexpected keyword argument 'use_cysignals'
make[2]: *** [test-nodoc] Error 1
make[1]: *** [ptest-nodoc] Error 2
make: *** [ptestlong-nodoc] Error 2
jhpalmieri commented 1 month ago

38122 fixes a different issue, not this one, so I'm reopening this.

mkoeppe commented 1 month ago

Right, I need to be more careful with the closing references...