Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expected performance of coveragepy? #1862

Open
oerp-odoo opened this issue Sep 26, 2024 · 6 comments
Open

Expected performance of coveragepy? #1862

oerp-odoo opened this issue Sep 26, 2024 · 6 comments
Labels
support A support question from a user

Comments

@oerp-odoo
Copy link

I wonder what is the expected performance of coverage? In my case it looks like some tests run 2x slower than without coverage

I am using python 3.12 with standard unittest framework.

Also, I noticed there is kind of big overhead before anything starts running, when you enable coverage. My app starts in about 1s, but if I enable coverage it starts running tests after about ~13s.

Here is a small sample of tests that are run without coverage:

2024-09-26 08:48:12,662 1 INFO odoodb odoo.addons.base.models.ir_attachment: filestore gc 0 checked, 0 removed 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.service.server: 8 post-tests in 3.11s, 1804 queries 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.tests.stats: base_env_meta: 12 tests 0.12s 118 queries 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.tests.stats: reports_project: 16 tests 3.11s 1804 queries 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.tests.stats: sale_importer_project: 9 tests 0.73s 286 queries 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.tests.stats: versatil: 43 tests 0.36s 230 queries 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.tests.result: 0 failed, 0 error(s) of 50 tests when loading database 'odoodb' 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.service.server: Initiating shutdown 
2024-09-26 08:48:12,662 1 INFO odoodb odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown. 
2024-09-26 08:48:12,706 1 INFO odoodb odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 2 connections 

Here same tests with coverage:

2024-09-26 08:50:09,710 1 INFO odoodb odoo.service.server: 8 post-tests in 5.98s, 1804 queries 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.tests.stats: base_env_meta: 12 tests 0.22s 118 queries 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.tests.stats: reports_project: 16 tests 5.97s 1804 queries 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.tests.stats: sale_importer_project: 9 tests 1.01s 286 queries 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.tests.stats: versatil: 43 tests 0.42s 230 queries 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.tests.result: 0 failed, 0 error(s) of 50 tests when loading database 'odoodb' 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.service.server: Initiating shutdown 
2024-09-26 08:50:09,711 1 INFO odoodb odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown. 
2024-09-26 08:50:10,044 1 INFO odoodb odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 2 connections

All tests run slower especially ones with lots of queries. Note, odoo is tightly coupled with database engine (postgres), so there are lots of tests that depend on database. Not sure if its relevant here.

My .coveragerc:

[run]
include =
    /opt/odoo/projects/monodoo/*
    /opt/odoo/projects/custom/*

omit =
    **/tests/*
    **/migrations/*

[report]
# Regexes for lines to exclude from consideration
exclude_lines =
    # Have to re-enable the standard pragma
    pragma: no cover

    # Don't complain if non-runnable code isn't run:
    if __name__ == .__main__.:

I run coverage like this:

os.execvp(cmd, cmd_args)

Where cmd is coverage and cmd_args = ['coverage', 'run', '/opt/odoo/odoo/odoo-bin', '-d', 'odoodb', '--stop-after-init', '--test-enable', '-u', 'my-module']

P.S. I also run it via docker container.

@oerp-odoo oerp-odoo added the support A support question from a user label Sep 26, 2024
@nedbat
Copy link
Owner

nedbat commented Sep 26, 2024

The first thing to check is what tracer you are using. Coverage.py has a C tracer and a Python tracer. You want the C tracer. It still adds overhead to your execution, but less than the Python tracer.

Add --debug=sys to your coverage run --debug=sys command, and you will get diagnostic output starting like this:

-- sys -------------------------------------------------------
               coverage_version: 7.6.2a0.dev1
                coverage_module: /Users/ned/coverage/trunk/coverage/__init__.py
                           core: CTracer
                        CTracer: available
           plugins.file_tracers: -none-
            plugins.configurers: -none-

core: CTracer is the thing you want to see. If it says PyTracer, then we can work out why.

@oerp-odoo
Copy link
Author

This is what I get with sys debug:

-- sys -------------------------------------------------------
               coverage_version: 7.6.1
                coverage_module: /opt/odoo/venv/lib/python3.12/site-packages/coverage/__init__.py
                           core: CTracer
                        CTracer: available
           plugins.file_tracers: -none-
            plugins.configurers: -none-
      plugins.context_switchers: -none-
              configs_attempted: /.coveragerc
                   configs_read: /.coveragerc
                    config_file: /.coveragerc
                config_contents: b"# coverage run /opt/odoo/venv/bin/odoo -u base_env_meta --stop-after-init -d odoodb -p 8055 --test-enable\n[run]\ninclude =\n    /opt/odoo/projects/monodoo/*\n    /opt/odoo/projects/custom/*\n\nomit =\n    **/tests/*\n    **/migrations/*\n\n[report]\n# Regexes for lines to exclude from consideration\nexclude_lines =\n    # Have to re-enable the standard pragma\n    pragma: no cover\n\n    # Don't complain if non-runnable code isn't run:\n    if __name__ == .__main__.:\n"
                      data_file: /.coverage
                         python: 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0]
                       platform: Linux-5.15.0-119-generic-x86_64-with-glibc2.39
                 implementation: CPython
                    gil_enabled: True
                     executable: /opt/odoo/venv/bin/python3
                   def_encoding: utf-8
                    fs_encoding: utf-8
                            pid: 30
                            cwd: /
                           path: /opt/odoo/venv/bin
                                 /usr/lib/python312.zip
                                 /usr/lib/python3.12
                                 /usr/lib/python3.12/lib-dynload
                                 /opt/odoo/venv/lib/python3.12/site-packages
                                 /opt/odoo/odoo
                                 /opt/odoo/packages/songs
                                 /opt/odoo/packages/songs_accounting
                                 /opt/odoo/packages/utilsx
                                 /opt/odoo/packages/odookit
                                 /opt/odoo/songs_custom
                    environment: COVERAGE_RUN = true
                                 HOME = /root
                   command_line: /opt/odoo/venv/bin/coverage run --debug=sys /opt/odoo/venv/bin/odoo -u versatil --test-enable --stop-after-init -d odoodb -p 8055
                 coverage_paths: /opt/odoo/venv/lib/python3.12/site-packages/coverage
                   stdlib_paths: /usr/lib/python3.12/re
                                 /usr/lib/python3.12
              third_party_paths: /opt/odoo/venv/lib/python
                                 /opt/odoo/venv/local/lib/python3.12/dist-packages
                                 /opt/odoo/venv/local/bin
                                 /opt/odoo/venv/lib/python3.12/site-packages
                                 /root/.local/bin
                                 /opt/odoo/venv/bin
                                 /root/.local/lib/python3.12/site-packages
                   source_match: -none-
              source_pkgs_match: -none-
                  include_match: /opt/odoo/projects/monodoo/*
                                 /opt/odoo/projects/monodoo/*
                                 /opt/odoo/projects/custom/*
                                 /opt/odoo/projects/custom/*
                     omit_match: **/tests/*
                                 **/migrations/*
                    cover_match: /opt/odoo/venv/lib/python3.12/site-packages/coverage
                    pylib_match: /usr/lib/python3.12
                                 /usr/lib/python3.12/re
                    third_match: /opt/odoo/venv/bin
                                 /opt/odoo/venv/lib/python
                                 /opt/odoo/venv/lib/python3.12/site-packages
                                 /opt/odoo/venv/local/bin
                                 /opt/odoo/venv/local/lib/python3.12/dist-packages
                                 /root/.local/bin
                                 /root/.local/lib/python3.12/site-packages
          source_in_third_match: -none-
         sqlite3_sqlite_version: 3.45.1
             sqlite3_temp_store: 0
        sqlite3_compile_options: ATOMIC_INTRINSICS=1, COMPILER=gcc-13.2.0, DEFAULT_AUTOVACUUM,
                                 DEFAULT_CACHE_SIZE=-2000, DEFAULT_FILE_FORMAT=4,
                                 DEFAULT_JOURNAL_SIZE_LIMIT=-1, DEFAULT_MMAP_SIZE=0, DEFAULT_PAGE_SIZE=4096,
                                 DEFAULT_PCACHE_INITSZ=20, DEFAULT_RECURSIVE_TRIGGERS,
                                 DEFAULT_SECTOR_SIZE=4096, DEFAULT_SYNCHRONOUS=2,
                                 DEFAULT_WAL_AUTOCHECKPOINT=1000, DEFAULT_WAL_SYNCHRONOUS=2,
                                 DEFAULT_WORKER_THREADS=0, DIRECT_OVERFLOW_READ, ENABLE_COLUMN_METADATA,
                                 ENABLE_DBSTAT_VTAB, ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS,
                                 ENABLE_FTS3_TOKENIZER, ENABLE_FTS4, ENABLE_FTS5, ENABLE_LOAD_EXTENSION,
                                 ENABLE_MATH_FUNCTIONS, ENABLE_PREUPDATE_HOOK, ENABLE_RTREE, ENABLE_SESSION,
                                 ENABLE_STMTVTAB, ENABLE_UNLOCK_NOTIFY, ENABLE_UPDATE_DELETE_LIMIT,
                                 HAVE_ISNAN, LIKE_DOESNT_MATCH_BLOBS, MALLOC_SOFT_LIMIT=1024,
                                 MAX_ATTACHED=10, MAX_COLUMN=2000, MAX_COMPOUND_SELECT=500,
                                 MAX_DEFAULT_PAGE_SIZE=32768, MAX_EXPR_DEPTH=1000, MAX_FUNCTION_ARG=127,
                                 MAX_LENGTH=1000000000, MAX_LIKE_PATTERN_LENGTH=50000,
                                 MAX_MMAP_SIZE=0x7fff0000, MAX_PAGE_COUNT=0xfffffffe, MAX_PAGE_SIZE=65536,
                                 MAX_SCHEMA_RETRY=25, MAX_SQL_LENGTH=1000000000, MAX_TRIGGER_DEPTH=1000,
                                 MAX_VARIABLE_NUMBER=250000, MAX_VDBE_OP=250000000, MAX_WORKER_THREADS=8,
                                 MUTEX_PTHREADS, SECURE_DELETE, SOUNDEX, SYSTEM_MALLOC, TEMP_STORE=1,
                                 THREADSAFE=1, USE_URI
-- end -------------------------------------------------------

I guess tracer is not the problem. When I run with debug, I immediately see debug output, but then nothing changes for ~12s and only after that time I see tests start running.

@nedbat
Copy link
Owner

nedbat commented Sep 26, 2024

OK, it's good that you have the right pieces in place. Is it possible to give me a way to reproduce the problem?

@oerp-odoo
Copy link
Author

Yes, it should be possible to run official odoo docker, like:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
docker run -d -p 8069:8069 --name odoo --link db:db -t odoo:17.0
docker exec -it odoo bash
cd ~/
pip install coverage
odoo -d odoodb -i sales_team --stop-after-init -p 8055 --db_host=db --db_password=odoo
odoo -d odoodb -u sales_team --stop-after-init -p 8055 --db_host=db --db_password=odoo --test-enable
/var/lib/odoo/.local/bin/coverage run /usr/bin/odoo -d odoodb -u sales_team --test-enable --stop-after-init -p 8055 --db_host=db --db_password=odoo

With odoo -d odoodb -u sales_team --stop-after-init -p 8055 --db_host=db --db_password=odoo --test-enable
it should run tests normally without coverage. With /var/lib/odoo/.local/bin/coverage run /usr/bin/odoo -d odoodb -u sales_team --test-enable --stop-after-init -p 8055 --db_host=db --db_password=odoo, same tests with coverage.

Though when I tested same thing on official image, I noticed that there was no delay, even though tests with coverage still run about 30% slower than without (for this sales_team module, for me it ran around 10s without and 13s with coverage).

Now regarding initial delay of 12-13s, it looks like it is related with Python 3.12 version or maybe some packages on that version specifically. The reason official image has no delay, because they still use 3.10 python. I use 3.12. To make sure it was the case, I switched my source code all the way back since 3.10 was used. And then I noticed that delay was gone as well.

What I also noticed, was that when that delay is happening, if I click CTRL+C, I get this traceback:

    runner.run()
  File "/opt/odoo/venv/lib/python3.12/site-packages/coverage/execfile.py", line 211, in run
    exec(code, main_mod.__dict__)
  File "/opt/odoo/odoo/odoo-bin", line 5, in <module>
    import odoo
  File "/opt/odoo/odoo/odoo/__init__.py", line 77, in <module>
    import PyPDF2
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/__init__.py", line 10, in <module>
    from ._encryption import PasswordType
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/_encryption.py", line 36, in <module>
    from .generic import (
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/generic/__init__.py", line 36, in <module>
    from ._annotations import AnnotationBuilder
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/generic/_annotations.py", line 3, in <module>
    from ._base import (
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/generic/_base.py", line 35, in <module>
    from .._codecs import _pdfdoc_encoding_rev
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/_codecs/__init__.py", line 3, in <module>
    from .adobe_glyphs import adobe_glyphs
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/_codecs/adobe_glyphs.py", line 13437, in <module>
    _complete()
  File "/opt/odoo/venv/lib/python3.12/site-packages/PyPDF2/_codecs/adobe_glyphs.py", line 13430, in _complete
    def _complete() -> None:

So I wonder maybe it is related with PyPDF2 package? And specifically when it is used with 3.12?

Odoo uses newer PyPDF2, if python is greater than 3.10 (https://github.com/odoo/odoo/blob/7e536998d84744a464e91fa5e056fc06f7796d6f/requirements.txt#L55):

PyPDF2==1.26.0 ; python_version <= '3.10'
PyPDF2==2.12.1 ; python_version > '3.10'

@kvrigor
Copy link

kvrigor commented Oct 14, 2024

Also observing this issue on Python 3.12 with coverage 7.6.1, OS Ubuntu 22.04. Our tests run with multiple workers (i.e. pytest -n auto) which usually takes ~35 minutes on 4 processors; with coverage on top we observe an additional ~60 minutes overhead. Launching through pytest-cov gives the same +1 hr overhead. Here's the debug log for my system:

-- sys -------------------------------------------------------
coverage_version: 7.6.1
coverage_module: /home/user/py3.12-env/lib/python3.12/site-packages/coverage/__init__.py
core: CTracer
CTracer: available
plugins.file_tracers: -none-
plugins.configurers: -none-
plugins.context_switchers: -none-
configs_attempted: /home/user/psydac/.coveragerc
/home/user/psydac/setup.cfg
/home/user/psydac/tox.ini
/home/user/psydac/pyproject.toml
configs_read: /home/user/psydac/pyproject.toml
config_file: /home/user/psydac/pyproject.toml
config_contents: b'[build-system]\nrequires = ["setuptools >= 64.0", "wheel", "numpy", "pyccel >= 1.9.2"]\nbuild-backend = "setuptools.build_meta"\n\n[project]\nname            = "psydac"\nversion         = "0.1"\ndescription     = "Python package for isogeometric analysis (IGA)"\nreadme          = "README.md"\nrequires-python = ">= 3.9, < 3.13"\nlicense         = {file = "LICENSE"}\nauthors         = [\n    {name = "Psydac development team", email = "psydac@googlegroups.com"}\n]\nmaintainers = [\n    {name = "Yaman G\xc3\xbc\xc3\xa7l\xc3\xbc"  , email = "yaman.guclu@gmail.com"},\n    {name = "Ahmed Ratnani", email = "ratnaniahmed@gmail.com"},\n    {name = "Said Hadjout"},\n]\nkeywords     = ["FEM", "IGA", "B-spline", "NURBS"]\nclassifiers  = ["Programming Language :: Python :: 3"]\ndependencies = [\n\n    # Third-party packages from PyPi\n    \'numpy >= 1.16\',\n    \'scipy >= 1.12\',\n    \'sympy >= 1.5\',\n    \'matplotlib\',\n    \'pytest >= 4.5\',\n    \'pytest-xdist >= 1.16\',\n    \'pyyaml >= 5.1\',\n    \'packaging\',\n    \'pyevtk\',\n\n    # Our packages from PyPi\n    \'sympde == 0.19.0\',\n    \'pyccel >= 1.11.2\',\n    \'gelato == 0.12\',\n\n    # In addition, we depend on mpi4py and h5py (MPI version).\n    # Since h5py must be built from source, we run the commands\n    #\n    # python3 -m pip install requirements.txt\n    # python3 -m pip install .\n    \'mpi4py\',\n    \'h5py\',\n\n    # When pyccel is run in parallel with MPI, it uses tblib to pickle\n    # tracebacks, which allows mpi4py to broadcast exceptions\n    \'tblib\',\n\n    # IGAKIT - not on PyPI\n    \'igakit @ https://github.com/dalcinl/igakit/archive/refs/heads/master.zip\'\n]\n\n[project.optional-dependencies]\ntest = [\n    "coverage",\n]\n\n[project.urls]\nHomepage      = "https://github.com/pyccel/psydac"\nDocumentation = "https://pyccel.github.io/psydac"\nRepository    = "https://github.com/pyccel/psydac.git"\n\n[project.scripts]\npsydac-mesh = "psydac.cmd.mesh:main"\n\n[tool.setuptools.packages.find]\ninclude = ["psydac*"]\nexclude = ["*__psydac__*"]\nnamespaces = false\n\n[tool.setuptools.package-data]\n"*" = ["*.txt"]\n\n[tool.coverage.run]\nbranch = true\nomit = [\n    # Exclude pyccelised kernels\n    "*/__psydac__/*",\n\n    # Examples don\'t need to be covered\n    "*/examples/*",\n\n    # Unit tests shouldn\'t be included\n    "*/tests/*",\n    ]\n\n[tool.coverage.report]\n# Regexes for lines to exclude from consideration\nexclude_also = [\n    # Don\'t complain about missing debug-only code:\n    "def __repr__",\n    "if self\\\\.debug",\n\n    # Don\'t complain if tests don\'t hit defensive assertion code:\n    "raise AssertionError",\n    "raise NotImplementedError",\n\n    # Don\'t complain if non-runnable code isn\'t run:\n    "if 0:",\n    "if __name__ == .__main__.:",\n\n    # Don\'t complain about abstract methods, they aren\'t run:\n    "@(abc\\\\.)?abstractmethod",\n    ]\n\n# Ignore source code that can\xe2\x80\x99t be found, emitting a warning instead of an exception.\nignore_errors = true\n\n[tool.coverage.html]\ndirectory = "coverage_html_report"\n'
data_file: /home/user/psydac/.coverage
python: 3.12.6 (main, Sep 10 2024, 00:05:17) [GCC 11.4.0]
platform: Linux-6.8.0-45-generic-x86_64-with-glibc2.35
implementation: CPython
gil_enabled: True
executable: /home/user/py3.12-env/bin/python3
def_encoding: utf-8
fs_encoding: utf-8
pid: 147291
cwd: /home/user/psydac
path: /home/user/psydac
/home/user/psydac
/usr/lib/python312.zip
/usr/lib/python3.12
/usr/lib/python3.12/lib-dynload
/home/user/py3.12-env/lib/python3.12/site-packages
environment: COVERAGE_PROCESS_START = /home/user/psydac/pyproject.toml
COVERAGE_RUN = true
HOME = /home/user
PYTHONPATH = /home/user/psydac
command_line: /home/user/py3.12-env/bin/coverage run --debug=sys -m pytest -n auto --failed-first --pyargs psydac -m not parallel and not petsc
coverage_paths: /home/user/py3.12-env/lib/python3.12/site-packages/coverage
stdlib_paths: /usr/lib/python3.12
/usr/lib/python3.12/re
third_party_paths: /home/user/py3.12-env/bin
/home/user/py3.12-env/local/lib/python3.12/dist-packages
/home/user/.local/bin
/home/user/py3.12-env/lib/python3.12/site-packages
/home/user/.local/lib/python3.12/site-packages
/home/user/py3.12-env/local/bin
/home/user/py3.12-env/lib/python
source_match: -none-
source_pkgs_match: -none-
include_match: -none-
omit_match: */__psydac__/*
*/examples/*
*/tests/*
cover_match: /home/user/py3.12-env/lib/python3.12/site-packages/coverage
pylib_match: /usr/lib/python3.12
/usr/lib/python3.12/re
third_match: /home/user/py3.12-env/bin
/home/user/py3.12-env/lib/python
/home/user/py3.12-env/lib/python3.12/site-packages
/home/user/py3.12-env/local/bin
/home/user/py3.12-env/local/lib/python3.12/dist-packages
/home/user/.local/bin
/home/user/.local/lib/python3.12/site-packages
source_in_third_match: -none-
sqlite3_sqlite_version: 3.37.2
sqlite3_temp_store: 0
sqlite3_compile_options: ATOMIC_INTRINSICS=1, COMPILER=gcc-11.4.0, DEFAULT_AUTOVACUUM,
DEFAULT_CACHE_SIZE=-2000, DEFAULT_FILE_FORMAT=4,
DEFAULT_JOURNAL_SIZE_LIMIT=-1, DEFAULT_MMAP_SIZE=0, DEFAULT_PAGE_SIZE=4096,
DEFAULT_PCACHE_INITSZ=20, DEFAULT_RECURSIVE_TRIGGERS,
DEFAULT_SECTOR_SIZE=4096, DEFAULT_SYNCHRONOUS=2,
DEFAULT_WAL_AUTOCHECKPOINT=1000, DEFAULT_WAL_SYNCHRONOUS=2,
DEFAULT_WORKER_THREADS=0, ENABLE_COLUMN_METADATA, ENABLE_DBSTAT_VTAB,
ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS, ENABLE_FTS3_TOKENIZER, ENABLE_FTS4,
ENABLE_FTS5, ENABLE_JSON1, ENABLE_LOAD_EXTENSION, ENABLE_MATH_FUNCTIONS,
ENABLE_PREUPDATE_HOOK, ENABLE_RTREE, ENABLE_SESSION, ENABLE_STMTVTAB,
ENABLE_UNLOCK_NOTIFY, ENABLE_UPDATE_DELETE_LIMIT, HAVE_ISNAN,
LIKE_DOESNT_MATCH_BLOBS, MALLOC_SOFT_LIMIT=1024, MAX_ATTACHED=10,
MAX_COLUMN=2000, MAX_COMPOUND_SELECT=500, MAX_DEFAULT_PAGE_SIZE=32768,
MAX_EXPR_DEPTH=1000, MAX_FUNCTION_ARG=127, MAX_LENGTH=1000000000,
MAX_LIKE_PATTERN_LENGTH=50000, MAX_MMAP_SIZE=0x7fff0000,
MAX_PAGE_COUNT=1073741823, MAX_PAGE_SIZE=65536, MAX_SCHEMA_RETRY=25,
MAX_SQL_LENGTH=1000000000, MAX_TRIGGER_DEPTH=1000,
MAX_VARIABLE_NUMBER=250000, MAX_VDBE_OP=250000000, MAX_WORKER_THREADS=8,
MUTEX_PTHREADS, OMIT_LOOKASIDE, SECURE_DELETE, SOUNDEX, SYSTEM_MALLOC,
TEMP_STORE=1, THREADSAFE=1, USE_URI
-- end -------------------------------------------------------

@153957
Copy link

153957 commented Nov 12, 2024

Seems related to #1287

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
support A support question from a user
Projects
None yet
Development

No branches or pull requests

4 participants