Skip to content

[Bug]: pytest retry configuration is not effective #37038

@shunping

Description

@shunping

What happened?

Looking at workflow file:

PYTEST_ADDOPTS: "-v --tb=short --maxfail=5 --durations=30 --reruns=5 --reruns-delay=15 --timeout=600 --disable-warnings"

It seems that we enabled a retry setting for pytest. However, when looking at the log (e.g. https://github.com/apache/beam/actions/runs/20010300018/job/57378762026), I don't see the option is effective. Particularly, the retry setting needs pytest plugin pytest-rerunfailures, but I could not see that in our plugin list below.

py310-cloud: commands[1]> bash /runner/_work/beam/beam/sdks/python/test-suites/tox/py310/build/srcs/sdks/python/scripts/run_pytest.sh py310-cloud ''"'"'--ignore=apache_beam/dataframe/ --ignore=apache_beam/ml/ --ignore=apache_beam/examples/ --ignore=apache_beam/runners/ --ignore=apache_beam/transforms/'"'"''
pytest_args: 
posargs: --ignore=apache_beam/dataframe/ --ignore=apache_beam/ml/ --ignore=apache_beam/examples/ --ignore=apache_beam/runners/ --ignore=apache_beam/transforms/
Running parallel tests with: pytest -m "not no_xdist"  --ignore=apache_beam/dataframe/ --ignore=apache_beam/ml/ --ignore=apache_beam/examples/ --ignore=apache_beam/runners/ --ignore=apache_beam/transforms/ 

--- Applying global testcontainers timeout configuration ---
Successfully set waiting utils config
============================= test session starts ==============================
platform linux -- Python 3.10.17, pytest-8.4.2, pluggy-1.6.0 -- /runner/_work/beam/beam/sdks/python/test-suites/tox/py310/build/srcs/sdks/python/target/.tox-py310-cloud/py310-cloud/bin/python
cachedir: target/.tox-py310-cloud/py310-cloud/.pytest_cache
hypothesis profile 'ci' -> database=None, deadline=None, print_blob=True, derandomize=True, suppress_health_check=(HealthCheck.too_slow,)
rootdir: /runner/_work/beam/beam/sdks/python/test-suites/tox/py310/build/srcs/sdks/python
configfile: pytest.ini
plugins: requests-mock-1.12.1, hypothesis-6.148.3, anyio-4.12.0, xdist-3.8.0, timeout-2.4.0       <-------- no "retryfailures" plugin
timeout: 600.0s
timeout method: signal
timeout func_only: False
created: 6/6 workers
6 workers [4105 items]

In addition, I can confirm that the environment variable PYTEST_ADDOPTS has no effect in the execution, because if it had, pytest should have reported an error of parsing --reruns parameter in the absence of rerunfailures plugin.

Issue Priority

Priority: 2 (default / most bugs should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions